Winclone Pro 6.2 (2018) Eng » Windows-soft.info – Торрент-портал для профессионалов !

Что делать, если «спулер» сильно грузит процессор

Многие пользователи разных версий «Виндовс» часто жалуются на то, что процесс «spooler» сильно грузит процессор. Проблема станет более острой, когда загрузка начинает доходить за отметку в 80 процентов. Это действительно нетипичная ситуация и такой загрузки быть не должно. Рассмотрим возможные причины и их быстрое самостоятельное решение.

  • Большая очередь из заданий на печать или файлы очень большого размера. Просто очищаем список заданий и разбиваем большой файл на несколько частей соответственно.
  • В перечне принтеров много моделей, которые вообще или очень редко используются. Их лучше удалить, так как службе печати приходится постоянно их «мониторить», что вызывает дополнительную нагрузку.
  • Устаревший или «битый» драйвер сам может негативно воздействовать и потреблять много ресурсов. В такой случае переустановка неизбежна.

Переустановка всей службы отдельно от операционной системы невозможна. Для возобновления ее корректной работы Вы можете только попытаться выполнить выше перечисленные действия.

Какая причина была у Вас?

  • Непонятно* 64%, 7 7 — 64% из всех
  • Просто была остановлена служба 18%, 2 голоса2 голоса — 18% из всех
  • 1 голос — 9% из всех
  • Много заданий в очереди печати 9%, 1 голос1 голос — 9% из всех
  • 0 — 0% из всех

Высокая нагрузка и нестабильность драйверов в терминальной среде.

Нестабильная работа драйверов и, соответственно, перегрузка ими диспетчера очереди печати (по русски – «спулера») вызывала (и будет вызывать, если не чего не делать), остановку всего процесса печати на сервере, а иногда и остановку (зависание) ОС сервера в целом.

До выхода Windows Server 2008, штатных средств по оптимизации нагрузки спулера в ОС Windows Server не было.

Поэтому единственным адекватным методом борьбы с регулярным зависанием спулера (и соответственно, массовыми звонками в тех. поддержку от разгневанных пользователей), был bat-ник, по расписанию превентивно перезапускающий процесс spoolsv.exe (например, утром и в обеденное время), освобождая спулер от висящих запросов и очередей.

С выходом Windows Server 2008 и Windows 7 появилась возможность изоляции драйверов принтера. Данная возможность позволяет драйверу принтера подгружать задачи не в Spoolsv.exe, а специальный под-процесс PrintIsolationHost.exe.

При такой конструкции, зависание драйвера одного принтера, не вешает всю очередь печати, поскольку встает только один под-процесс PrintIsolationHost.exe, а сам процесс спулера spoolsv.exe остается работоспособным.

Теперь пару слов о настройке. Диспетчер печати по умолчанию выполняет драйверы печати в изолированном процессе. Изменить можно при помощи групповой политики, параметр «Выполнять драйверы принтеров в изолированных процессах» .

Также важен еще один параметр групповой политики это – «Переопределить параметр совместимости выполнения драйвера печати«

Для того чтобы включить изоляцию драйверов принтеров, нужно использовать редактор локальной групповой политики (gpedit.msc):

Откройте gpedit.msc и последовательно перейдите:

Добавление сертификатов в базу данных nss


Некоторые приложения используют базу данных NSS, и у вас может быть необходимость добавить доверенные CA в неё.

Последующие изменения повлияют только на приложения, использующие базу данных NSS и учитывающие файл /etc/pki/nssdb.

1. Сначала создайте структуру каталогов для системных файлов базы данных NSS:

sudo mkdir -p /etc/pki/nssdb

Затем создайте новый набор файлов базы данных. Пароль нужен для того, чтобы базу данных могли редактировать только люди, которые его знают. Если все пользователи в системе (и с доступом к резервным копиям) заслуживают доверия, этот пароль можно оставить пустым.

sudo certutil -d sql:/etc/pki/nssdb -N

2. Убедитесь, что файлы базы данных доступны для чтения всем:

sudo chmod go r /etc/pki/nssdb/*

3. Теперь, когда доступны файлы базы данных NSS, добавьте сертификат в хранилище следующим образом:

sudo certutil -d sql:/etc/pki/nssdb -A -i ФАЙЛ-СЕРТИФИКАТА.crt -n "ИМЯ-СЕРТИФИКАТА" -t "C,,"


Например:

sudo certutil -d sql:/etc/pki/nssdb -A -i ./HackWareCA.crt -n "HackWare CA" -t "C,,"

Биты доверия, используемые в приведённом выше примере, помечают сертификат как надёжный для подписи сертификатов, используемых для связи SSL/TLS. Имя (указывается после опции -n), используемое в команде, можно выбрать любое, но убедитесь, что его легко отличить от других сертификатов в магазине.

Для проверки:

certutil -L -d /etc/pki/nssdb


Аналогичные инструкции можно использовать для включения сертификата только в базу данных NSS конкретного пользователя:

certutil -d sql:$HOME/.pki/nssdb -A -i ФАЙЛ-СЕРТИФИКАТА.crt -n "ИМЯ-СЕРТИФИКАТА" -t "C,,"

Удаление из файлов базы данных NSS

Чтобы удалить сертификат из любой базы данных NSS, используйте команду certutil следующим образом. В этом примере используется общесистемное расположение базы данных NSS, но его можно легко изменить на пользовательское ~/.pki/nssdb местоположение.

sudo certutil -d sql:/etc/pki/nssdb -D -n "certificateName"

Используем шаблоны безопасности (security templates) для управления разрешениями служб

Более наглядный (но и требующий большего количества действий) графический способ управления правами на службы – с помощью шаблонов безопасности. Для реализации, откройте консоль mmc.exe и добавьте оснастку Security Templates.

mmc оснастка Security TemplatesСоздадим новый шаблон (New Template).Новый шаблон безопасностиЗадайте имя нового шаблона и перейдите в раздел System Services. В списке служб выберите свою службу Print Spooler и откройте ее свойства.

Установите тип запуска (Automatic) и нажмите кнопку Edit Security.

С помощью кнопки Add добавьте учетную запись пользователя или группы, которым нужно предоставить права. В нашем случае, нам достаточно права Start, Stop and pause.

Разрешения службыСохраните шаблон (Save).

Как добавить корневой сертификат в доверенные в linux в веб браузеры

Chrome, Chromium, Firefox и созданные на их основе веб браузеры доверяют корневым сертификатам, установленным на уровне системы. То есть вам достаточно добавить в доверенные CA сертификат как это показано в предыдущем разделе.


Причём эти браузеры хотя и используют NSS, они игнорируют общесистемные сертификаты NSS, которые можно добавить в файл /etc/pki/nssdb!

Тем не менее приложения, которые используют NSS (такие как Firefox, Thunderbird, Chromium, Chrome) хранят свои списки доверенных сертификатов в файлах cert9.db. Чтобы добавить свой сертификат в каждый из этих файлов можно использовать скрипт.

Сохранить следующий код в файл CAtoCert9.sh:

#!/bin/bash

certfile="root.cert.pem"
certname="My Root CA"

for certDB in $(find ~/ -name "cert9.db")
do
	certdir=$(dirname ${certDB});
	certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
done


В этом файле измените значение certfile на имя файла вашего сертификата и значение certname на имя вашего сертификата, сохраните и закройте файл.

Затем запустите его следующим образом:

bash ./CAtoCert9.sh

В результате в домашней папке пользователя будут найдены все файлы cert9.db и в каждый из них будет добавлен указанный CA сертификат.

Вы можете добавить CA сертификаты в графическом интерфейсе каждого браузера.

  • В настройках Chrome: Конфиденциальность и безопасность → Безопасность → Настроить сертификаты → Центры сертификации
  • В настройках Chromium: Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации


Нажмите кнопку «Импорт»:

Выберите файл с сертификатом.

Укажите, какие полномочия вы даёте этому сертификату:

  • В настройках Firefox: Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:

Нажмите кнопку «Импортировать»:


Выберите файл с сертификатом.

Укажите, какие полномочия вы даёте этому сертификату:

Как добавить корневой сертификат в доверенные в linux на уровне системы

Сертификат с расширением .crt можно открыть двойным кликом и просмотреть его содержимое:

Если вы работаете в системе от обычного пользователя (не root), то кнопка «Импортировать» будет недоступна.

:/>  File Transfer Protocol (FTP), a List of FTP Commands


Чтобы разблокировать кнопку «Импортировать», выполните следующую команду:

sudo gcr-viewer /ПУТЬ/ДО/СЕРТИФИКАТА.crt

Например:

sudo gcr-viewer ./HackWareCA.crt

Данный способ может не сработать, поэтому рассмотрим, как добавить доверенные корневые центры сертификации в командной строке.

Суть метода очень проста:

  1. Добавить свой корневой CA сертификат в папку, предназначенную для таких сертификатов.
  2. Запустить программу для обновления общесистемного списка сертификатов.


Пути и команды в разных дистрибутивах Linux чуть различаются.

Просмотреть Subject всех корневых CA сертификатов можно уже знакомой командой:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt

Для демонстрации я добавлю сертификат с Common Name, включающим «HackWare», тогда для проверки, имеется ли сертификат с таким именем среди корневых CA, я могу использовать команду:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i HackWare


Для добавления своего корневого CA в доверенные в Debian, Kali Linux, Linux Mint, Ubuntu и их производных:

1. Проверьте, существует ли директория /usr/local/share/ca-certificates:

ls -l /usr/local/share/ca-certificates

Если её ещё нет, то создайте:

sudo mkdir /usr/local/share/ca-certificates


Сертификат должен быть в формате PEM (обычно так и есть) и иметь расширение .crt — если расширение вашего сертификата .pem, то достаточно просто поменять на .crt.

2. Скопируйте ваш сертификат командой вида:

sudo cp СЕРТИФИКАТ.crt /usr/local/share/ca-certificates/

Например:

sudo cp ./HackWareCA.crt /usr/local/share/ca-certificates/

3. Запустите следующую команду для обновления общесистемного списка:

sudo update-ca-certificates


Пример вывода:

Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:HackWareCA.pem
done.
done.

Проверим наличие нашего CA сертификата среди доверенных:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i HackWare

Сертификат успешно найден:


Чтобы его удалить:

sudo rm /usr/local/share/ca-certificates/СЕРТИФИКАТ.crt
sudo update-ca-certificates

Для добавления своего корневого CA в доверенные в Arch Linux, BlackArch и их производных:

1. Выполните команду вида:

sudo cp ./СЕРТИФИКАТ.crt /etc/ca-certificates/trust-source/anchors/


Например:

sudo cp ./HackWareCA.crt /etc/ca-certificates/trust-source/anchors/

2. Обновите общесистемный список доверенных CA:

sudo update-ca-trust

Чтобы удалить этот сертификат:

sudo rm /etc/ca-certificates/trust-source/anchors/СЕРТИФИКАТ.crt
sudo update-ca-trust

Как поставить windows на mac с помощью boot camp и usb-флешки

Недавно встала острая нужда в одном софте, который существует только для Windows, потому решил использовать свою старую прошку (mid 2021 7.1) в качестве полигона для разворачивания Windows.

Железо у этой прошки весьма слабое (2,4 GHz Core2Duo с 4гб памяти) и ставить Windows на виртуальную машину было бы безумием, поэтому решил воспользоваться установкой аппаратно, благо вполне официально Apple позволяет сделать это через Boot Camp.

Небольшая проблема была лишь в том, что Boot Camp на старых маках позволяет ставить систему только с диска, а у меня, как и у многих, optical drive ужа давно приказал жить долго. И нужно было как-то заставить Boot Camp ставить систему с USB-накопителя.

Друзья, все операции я производил на системе MacOSX El Capitan, в других версия ОС ситуация аналогичная.

1. Перезагружаем компьютер и как только экран гаснет зажимем Command R. До тех пор, пока не появится яблоко с загрузкой

2. Теперь заходим в Utilities и открываем Terminal. 3. В терминале вводим следующую команду:

5. Перезагружаемся. Система загружается в обычном режиме с отключенной системой защиты.

Теперь можно приступить к редактированию плиста.

1. Открываем Отчет о системе (в меню Об этом Мак). Запишите куда-ниудь Model Identifier и Boot ROM Version.

2. Теперь открываем Terminal. Вводим следующую команду:

5. Прокручиваем дальше до секцииPreUSBBootSupportedModels и вставляем в столбик ранее записанное нами Model Identifier.

7. Далее добавляем Model Identifier в секции PreESDRequiredModelsи PreUEFIModels.

8. Полностью удаляем всю секцию Win7OnlyModels, включая все стринги

9. Чтобы сохранить изменения, нажимаем CTRL X, печатаем Y для подтверждения и нажимаем Enter. Файл будет сохранен, а мы возвращаемся в Terminal.

10. В терминале вводим команду

Как будет готово, выходим из терминала.

Запускаем Boot Camp и наслаждаемся установкой Windows (теперь уже не только 7, но и более поздних версий прямо с USB-флешки).

Источник

Как установить windows 10 по шагам

1. Запустите утилиту Boot Camp через поиск Spotlight, Finder или Launchpad.

2. Укажите программе путь к загруженному образу и выберите, сколько места на установленном накопителе выделить для установки Windows.

Хорошенько подумайте на данном этапе, ведь изменить используемый раздел без переустановки Widows не получится. Если планируете играть в игры или запускать тяжелые приложения, лучше сразу выделите больше места.

3. Дождитесь загрузки необходимых драйверов и данных из сети. После скачивания и перезагрузки компьютера начнется установка Windows 10.

4. Мастер установки попросит произвести базовые настройки и указать раздел, на который следует поставить Windows. Он уже будут назван BOOTCAMP.

5. После окончания установки потребуется произвести окончательную настройку параметров системы.

6. Оказавшись на рабочем столе Windows потребуется запустить утилиту Boot Camp. Она будет храниться на системном диске либо на съемном накопителе, который был создан на этапе подготовки.

7. После установки всех компонентов и перезагрузки Windows нужно подключиться к сети через Wi-Fi или по кабелю и запустить Apple Software Update из панели Пуск.

8. В программе следует указать все доступные обновления. Установить из и перезапустить компьютер.

Неожиданная особенность проверки сертификатов в windows

Немного затянул с публикацией, но лучше поздно чем никогда. В начале рабочей недели появились задержки при подключении по RDP ко всем компьютерам, оно подвисало на несколько секунд в стадии «Securing remote connection…», которая отвечает за установку шифрованного канала для безопасной передачи реквизитов.

Так как для RDS используются сертификаты от внутреннего

CA

и уже когда-то забыв обновить CRL корневого офлайнового CA решил проверить его здоровье в

pkiview.msc

.

Оснастка показала, что всё OK, но напротив обоих CA несколько секунд держался статус Verifying, что странно, так как все данные для проверки доступны внутри домена через LDAP и HTTP. Проверка через certutil -verify также подвисала на 10-15 секунд в стадии CERT_CHAIN_POLICY_BASE, причем с любыми сертификатами — не только от внутренних, но и от внешних CA (StartCom, Comodo и т.д.).

Проблема не ушла и после перерегистрации сертификатов с CRL в CDP и AIA. Отчаявшись, захватил сетевой дамп во время выполнения certutil -verify и увидел там следующее:

Winclone Pro 6.2 (2018) Eng » Windows-soft.info - Торрент-портал для профессионалов !

Трейс до ctldl.windowsupdate.com показал zapret.comcor.ru в пути, а его IP-адрес (CDN Akamai) оказался добавлен 01.08.2021 в реестр блокировки РКН.

Оказывается в Windows 8.1 (и позднее портирован в Vista, 7 и 8) появился механизм динамической загрузки списков доверенных и недоверенных удостоверяющих центров (CTL) на случай появления новых или их компрометации. Когда срок действия подходит к концу, клиент пытается обновить CTL и если это не удаётся, попытка повторяет при каждой установке SSL-соединения.

Посмотреть содержимое и проверить состояние CTL можно командами certutil -f -verifyCTL AuthRoot и certutil -f -verifyCTL Disallowed. Также этими командами можно восстановить содержимое хранилища сертификатов.

Списки загружаются с адреса ctldl.windowsupdate.com, но у провайдера сломалась страница-заглушка и соединения к запрещённым ресурсам блокировались по IP-адресу, что вызывало таймаут в 15 секунд при установке каждого соединения.

:/>  Символьная ссылка Windows 10: что это и как ее создать, пошаговая инструкция

Подробное описание нового механизма есть на TechNet, для обходного решения таймаут можно задать через групповые политики в разделе Public Key Policies > Certificate Path Validation Settings > Network Retreival:

Winclone Pro 6.2 (2018) Eng » Windows-soft.info - Торрент-портал для профессионалов !

Пока гуглил описание механизма наткнулся на блог исследователя, где он описывает алгоритм работы на примере своей утилиты CTLInfo, которая умеет показывать содержимое и срок действия CTL.

Очистка реестра от старых принтеров

Итак, нашу очистку мы начнем  с системного реестра.

Буте внимательны, выполняя дальнейшие действия Вы удалите из системы все установленные принтеры, поэтому, после окончания процедуры очистки, нужно будет установить принтер и драйвера заново.

Так же, перед выполнением последующих рекомендаций,  отключите принтер от компьютера.

В окне «Выполнить» прорисуем команду regedit, которая вызовет окно реестра.

Первым шагом будет проверка компонентов от которых зависит служба  spooler, для этого переходим к  ветке  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSpooler, где для параметра DependOnService, должно быть указано значение RPCSS.

Далее, удаляем все печатающие устройства которые есть в системе. Переходим по ветке HKEY_LOCAL_MACHINESystemCurrentControlSetControlPrintPrinters, где нажав на стрелочку появится весь список принтеров. Для их удаления мы можем воспользоваться клавишей «Delet»

Вторым пунктом, является очистка от всех драйверов. Развернув ветку KEY_LOCAL_MACHINESystemCurrentControlSetControlPrintEnvironmentsWindowsNTx86DriversVersion-3 ( в х64 битных операционных системах нужно открыть …EnvironmentsWindows NTx64DriversVersion-3) удаляем весь перечень драйверов установленных в системе.

В ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintMonitors, список записей должен выглядеть следующим образом.

  • BJ Language Monitor
  • Local Port
  • PJL Language Monitor
  • Standard TCP/IP Port
  • USB Monitor

Все остальное удаляем.

На этом работа с реестра окончена, теперь переходим к очистке папки Spool

Переходим к практике

Чтобы не загромождать статью, я не буду приводить кучу проверок (на то, что компьютер доступен, что у нас есть доступ к WMI и т.д.).

Итак, для начала нам нужно узнать путь к очереди печати, т.е. посмотреть значение реестра удалённого компьютера. Для этого используем .NET класс RegistryKey.

Для того, чтобы подключиться к реестру удалённого компьютера используем метод OpenRemoteBaseKey, передав ему в качестве параметров имя компьютера и раздел реестра:

$ServerKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey( [Microsoft.Win32.RegistryHive]::LocalMachine, $ComputerName)

$Key = $ServerKey.OpenSubKey(‘SYSTEMCurrentControlSetControlPrintPrinters’)

Переменная $Key содержит весь подраздел Printers (на скриншоте выше). Нам из этого раздела нужно только одно значение:

$DefaultSpoolDirectory = $Key.GetValue(‘DefaultSpoolDirectory’)

Переменная $DefaultSpoolDirectory содержит тот самый путь к файлам очереди печати:

PS C:> $DefaultSpoolDirectoryC:WINDOWSSystem32spoolPRINTERS

Отлично! Вот только появляется новая проблема: это локальный путь – по этому пути к удалённому компьютеру мы не доберёмся. Нужно преобразовать его в UNC-путь, т.е. из пути

C:WINDOWSsystem32spoolPRINTERS

получить путь

ComputerNameC$WINDOWSsystem32spoolPRINTERS

Это можно сделать простой манипуляцией со строкой:

$RemoteDefaultSpoolDirectory = ‘’ $ComputerName ” $DefaultSpoolDirectory[0] ‘$’ $DefaultSpoolDirectory.Substring(2)

Т.е. просто дописываем в строку (наш локальный путь) недостающие символы.

Теперь всё готово, можем останавливать службу и очищать очередь печати.

Останавливаем службу печати:

# Получаем службу$Service = Get-WmiObject Win32_Service @PSBoundParameters # Останавливаем службу$Service.StopService()

На всякий случай поясню – в данном случае при обращении к WMI используется сплаттинг, если такая форма кажется незнакомой и пугающей рекомендую почитать соответствующую статью, или воспользоваться более привычной формой:

$Service = Get-WmiObject Win32_Service ` -Filter «name = ‘spooler’» ` -ComputerName $ComputerName

После остановки службы можно очищать очередь печати, но как известно аппетит приходит во время еды, и мне захотелось ещё посмотреть на то, сколько мусора там собралось:

# Если в очереди печати что-то естьif ($ContentSpoolDirecrory = Get-ChildItem $RemoteDefaultSpoolDirectory -Force){ # Считаем размер каталога с очередью печати $FolderSize = ($ContentSpoolDirecrory | Measure-Object -Property Length -Sum).Sum / 1Mb # Выводим «`nВ {0} находится {1} файл(а/ов), общим объёмом {2:

Вообще общепризнанным “best practice” не рекомендуется выводить простой текст в выводе скрипта, но так как это не было целью работы, и мне уже было лень с этим возиться, поэтому я просто воспользовался оператором –f.

Осталось только запустить службу:

$Service.StartService()

Если нужно перезапустить (остановить/запустить) другую службу, действия будут аналогичными, при необходимости можно имя службы и удалённого ПК засунуть в параметры, и запускать/останавливать/перезапускать любые службы на любых компьютерах

Принудительная очистка очереди печати в windows | windows для системных администраторов

Рассмотрим особенности очистки «подвисшей» очереди печати в системах Windows. Рассмотренная методика позволяет удалить из очереди документы, которые по какой-то причине не печатаются и мешают отправке на печать других файлов и документов.

«Мягкий» способ очистки текущей очереди печати принтера выполняется из окна Панели управления  (Control Panel ->Devices and Printers). В списке принтеров нужно найти проблемный принтер, щелкнуть по нему ПКМ и выбрать в меню пункт See what’s printing.

Список принтеров в панели управленияВ открывшемся окне управления очередью печати принтера в меню выбираем пункт Printer-> Cancel All Documents . Все документы, в том числе зависшие, должны удалиться из очереди печати принтера.

Удалить документы из очереди печати WindowsВ том случае, если какие-то документы не удаляются из очереди печати, значит они в данный момент заблокированы системой или драйвером самого принтера. Они пропадут из очереди печати после перезагрузки. Если перезагрузка выполнить проблематично, можно принудительной удалить все задания из очереди службы печати Windows.

Важно. Приведенная ниже методика очистки очереди печати удаляет ВСЕ имеющиеся задания печати на ВСЕХ принтерах системы. Это нужно иметь в виду, особенно при очистке зависшей очереди печати на выделенном принт-сервере на базе Windows.

Напомним, что при отправке документа на печать на принтер, служба печати Windows (Print Spooler) формирует задание печати и создает два файла: один с расширением .SHD (содержит настройки задания печати), второй — .SPL (хранит собственно данные, которые нужно распечатать).  Таким образом, задания печати будут доступны службе печати, даже после закрытия программы,  инициировавшей печать. Данные файлы хранятся в каталоге спулера (по умолчанию, «%systemroot%System32spoolPRINTERS”). После успешной печати, эти файлы автоматически удаляются из этого каталога, и, соответственно, из очереди печати.

Файлы спуулера %systemroot%System32spoolPRINTERS

Нам нужно вручную очистить содержимое этой папки, тем самым мы удалим все задания в памяти Print Spooler.

Откройте командную строку с правами администратора и последовательно выполните команды:

net stop spooler
del %systemroot%system32spoolprinters*.shd /F /S /Q
del %systemroot%system32spoolprinters*.spl /F /S /Q
net start spooler

Принудительная очистка заданий в очереди печатиЭтот набор команд последовательно останавливает службу печати Windows, рекурсивно удаляет все файлы с расширениями *.shd и *.spl из каталога %systemroot%system32spoolprinters и запускает остановленную службу.

Архив с готовым bat файлом можно скать по ссылке reset_spooler.zip (запускать от имени администратора)

Рассмотренные выше методики помогут очистить очередь печати в любой версии Windows, будь то Windows 7, 8 или Windows 10.

Простой экспорт сертификатов в powershell – pki extensions

Update 03.12.2021: исправлен код записи base64 строки в файл.


С различной периодичностью на ньюсгруппах и англоязычных форумах встречаю вопрос, как экспортировать сертификаты из хранилища (Certificate Store) или сертификаты цифровых подписей файлов в .CER или .DER файл. Сегодня я продемонстрирую простой метод для экспорта этих сертификатов.

На самом деле разница между экспортом сертификата из хранилища сертификатов и подписанного файла заключается только в методе извлечения самого сертификата в x509Certificate2 объект. Давайте начнём с самого простого – экспорт сертификата из хранилища. В PowerShell уже есть свой провайдер для этого хранилища и свой PSDrive:

[↓] [vPodans] dir cert:


Location   : CurrentUser
StoreNames : {SmartCardRoot, UserDS, AuthRoot, CA...}

Location   : LocalMachine
StoreNames : {SmartCardRoot, AuthRoot, CA, Trust...}



[↓] [vPodans] dir cert:currentuser


Name : SmartCardRoot

Name : UserDS

Name : AuthRoot

Name : CA

Name : AddressBook

Name : Trust

Name : Disallowed

Name : My

Name : Root

Name : TrustedPeople

Name : TrustedPublisher

Name : REQUEST



[↓] [vPodans] dir cert:currentusermy


    Directory: Microsoft.PowerShell.SecurityCertificate::currentusermy


Thumbprint                                Subject
----------                                -------
9C5E4DCEF6598C1298894F62D4BD16E601B8C780  CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=W...
986D375362652FE9E39BA4D042A6B8BA75745998  CN=Administrator, CN=Users, DC=sysadmins, DC=lv
4BB89D732920DD91DE66983DDF2CC4EEC272A802  CN=Administrator, CN=Users, DC=sysadmins, DC=lv
14B931DB4790403CCE2A3D03B62638FC7A0D5F34  CN=Administrator, OU=Administrators, DC=sysadmins, DC=lv


[↓] [vPodans]

Если просто посмотреть содержимое Cert:, то мы увидим там 2 хранилища

:/>  Программе установки Windows не удалось создать новый раздел | Windows для системных администраторов

Внутри уже видны контейнеры, которые мы видим в виде папок в MMC консоли. А дальше уже хранятся наши сертификаты. Эти сертификаты здесь представлены в виде массива x509Certificate2.

[↓] [vPodans] (dir cert:currentusermy)[0].gettype().FullName
System.Security.Cryptography.X509Certificates.X509Certificate2
[↓] [vPodans]

Если посмотреть свойства этого объекта через Get-Member, то мы сможем там увидеть метод Export(). Но лучше посмотреть этот метод на MSDN, т.к. он имеет несколько конструкторов: x509Certificate2.Export Method. Из них нас заинтересует только первый конструктор, который Export(X509ContentType). Остальные 2 необходимы для экспорта с паролем (только для PFX). Но, как мы видим из описания метода, нам надо ещё указать x509ContentType объект, который будет указывать нам на тип экспортируемого сертификата. Типы экспортируемых сертификатов можно посмотреть по ссылке: http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509contenttype.aspx или в консоли PowerShell:

[↓] [vPodans] [System.Enum]::GetNames([system.security.cryptography.x509certificates.x509contenttype])
Unknown
Cert
SerializedCert
Pfx
Pkcs12
SerializedStore
Pkcs7
Authenticode

Нас сейчас будет интересовать только тип Cert (только открытая часть сертификата).

Теперь мы уже знаем достаточно много, чтобы уже начать писать код. Мы сейчас получим объект сертификата, укажем тип экспортируемого сертификата и выполним метод Export():

$cert=(dircert:currentuserMy)[]$type=[System.Security.Cryptography.X509Certificates.X509ContentType]::Cert$ExportedData=$cert.Export($type)

Но это ещё не всё. Посмотрите, что у вас находится в переменной $ExportedData! Там на самом деле огромный массив байтов (в среднем более 2-20 тысяч элементов). Это же и указано в описании метода, что он возвращает. Именно массив байтов. Но что с ним делать? Я сам по-началу думал об этом, пока не вспомнил про одну вещь:

Certificate Export Wizard

У нас есть выбор, как экспортировать сертификат – в DER или Base64 кодировке. Когда я писал про PsFCIV, то у меня была такая же ситуация. Hasher у меня так же возвращал массив байтов, который мы сразу же загоняли в Base64 кодировку. В нашем случае потребуется то же самое:

$base64Data=[System.Convert]::ToBase64String($ExportedData)

И на выходе мы молучим длинную Base64 строку, которую уже и нужно экспортировать в файл любым удобным для вас методом:

Set-Content-Pathpathfile.cer-Value$base64Data-EncodingAscii

вы можете убедиться в этом просто открыв .CER файл.  Чтобы получить объект сертификата из цифровой подписи файла, то мы можем просто воспользоваться командлетом Get-AuthenticodeSignature и выбрать свойство SignerCertificate. Если подпись файла дополнительно подписана сертификатом сервера времени, то вы можете использовать так же и свойство TimeStampCertificate:

[↓] [vPodans] $a.SignerCertificate

Thumbprint                                Subject
----------                                -------
9E95C625D81B2BA9C72FD70275C3699613AF61E3  CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=W...


[↓] [vPodans] $a = Get-AuthenticodeSignature .DesktopEASetup.exe
[↓] [vPodans] $a.SignerCertificate

Thumbprint                                Subject
----------                                -------
9E95C625D81B2BA9C72FD70275C3699613AF61E3  CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=W...


[↓] [vPodans] $a.TimeStamperCertificate

Thumbprint                                Subject
----------                                -------
4D6F357F0E6434DA97B1AFC540FB6FDD0E85A89F  CN=Microsoft Time-Stamp Service, OU=nCipher DSE ESN:85D3-305C-5BCF, OU=MOP...


[↓] [vPodans]

В этих свойствах сертификаты уже хранятся в виде объектов x509Certificate2 и дальше их можно экспортировать тем же самым путём, как мы это делали для сертификатов из Certificate Store. Собственно, для извлечения сертификатов из цифровых подписей файлов я написал неплохой скриптик, который добавляет в контекстное меню элемент Export Certificate:

Export Certificate Context menu

и по нажатию на него цифровая подпись будет экспортирована в MyDocsFileName.ext.cer, где FileName.ext – оригинальное имя файла и к нему просто пристыковывается расширение CER. В скрипте предусмотрены несколько диалоговых окон о состоянии сертификата:

  • файл подписан и хеш файла соответствует хешу в цифровой подписи:

Valid Certificate

  • файл подписан, но хеш файла не соответствует хешу в цифровой подписи:

Hash Mismatch

  • файл не содержит цифровых подписей:

No certificate

В двух последних случаях сертификат не экспортируется никуда по очевидным причинам. И, собственно скрипты-инсталляторы этого контекстного меню с рабочим кодом для:

Download FileDownload File1
PS1 file

9.0 KB
ExportCertificate_ps1.0

Download FileDownload File1
PS1 file

8.4 KB
ExportCertificate_ps2.0

В следующих статьях я планирую поговорить про импорт сертификатов в Certificate Store, а так же и экспорт сертификатов с закрытыми ключами в PFX файл с использованем Windows PowerShell.


Управление правами служб через групповые политики

Если нужно раздать пользователям права запуска/остановки сервиса сразу на множестве северов или компьютерах домена, проще всего воспользоваться возможностями групповых политик (GPO).

  1. Создайте новую или отредактируйте существующую GPO, назначьте ее на нужный контейнер с компьютерами в Active Directory. Перейдите в раздел политик Computer configuration -> Windows Settings -> Security Settings -> System Services;Групповая политика управления службами
  2. Найдите службу Spooler и аналогично методике с шаблонами безопасности, рассмотренной ранее, предоставьте права пользователю. Сохраните изменения;
  3. Осталось дождаться обновления политик на клиентских компьютерах и проверить применение новых разрешений на службу.

Итак, мы разобрали несколько способов управления правами на службы Windows, позволяющих предоставить произвольному пользователю любые права на системные службы. Если пользователю требуется удаленный доступ к службе, без предоставления ему прав локального входа в систему, нужно разрешить пользователю удаленно опрашивать Service Control Manager.

Экспорт сертификата windows

Давайте теперь проделаем процедуру обратного порядка. Первым делом я произведу экспорт сертификата из графического интерфейса. В оснастке “Сертификаты” найдите нужный вам. Щелкните по нему правым кликом и выберите “Все задачи – Экспорт’.

У вас откроется окно мастера экспорта сертификатов, нажимаем далее.

Если есть возможно и закрытый ключ экспортируемый, то можете выставить режим “Да, экспортировать закрытый ключ”.

Вам будет предложено выбрать формат выгрузки, тут могут быть расширения cer DER, cer Base-64, p7b, PFX. Так как у меня сертификат Wildcard, то я могу выгрузить в “Файл обмена личной информацией -PKCS # 12(.PFX)”. Если вы планируете после экспорта удалить из личного хранилища ваш сертификат, то можете тут выставить соответствующую галку. Так же может выгрузить все расширения, после чего нажимаем далее.

Задаем обязательный пароль два раза, лучше сразу задавать стойкий пароль.

В следующем окне мастера по экспорту сертификатов, вы задаете его имя и где он будет сохранен.

Нажимаем далее.

Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

Экспорт успешно выполнен.

Теперь давайте произведем экспорт с помощью утилиты certutil. Перед тем, как это сделать, нам необходимо вычислить серийный номер сертификата.Для этого выполните команду:

certutil -store my

Находим поле “Серийный номер” у нужного сертификата и копируем его.

Далее пишем команду для экспорта сертификата;

certutil -exportPFX -p “12345678” my 790000fa279f2bd96421c6e2bc00010000fa27 export-cert-2.pfx

Все успешно отработало.

На выходе я получил файл export-cert-2.pfx. Открыть архив с сертификатом вы легко сможете через утилиту keytool или Key Store Explorer.

На этом у меня все, мы с вами разобрали алгоритм и методы по импортированию и экспортированию сертификатов в операционной системе Windows. остались вопросы или пожелания, то я жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала msconfig.ru.

Оставьте комментарий

Adblock
detector