- Все о подписи драйверов windows
- Дополнительные ресурсы
- Как подписать драйвер для работы устройств на windows 10 или windows 7
- Необходимые инструменты
- Подготовка inf-файла пакета драйвера
- Подписание драйвера
- Подписание файла windows exe
- Подписывание cat-файла с помощью программы signtool
- Подписывание пакета драйвера устройства
- Пошаговая схема подписывания пакета драйвера
- Пошаговая схема размещения пакета драйвера устройства в хранилище драйверов
- Размещение пакета драйвера устройства в хранилище драйверов
- Создание cat-файла для пакета драйвера
- Создание самоподписанного сертификата и приватного ключа
- Создание файла каталога
- Установка драйвера
- Установка самоподписанного сертификата
- Шаг 1. попытка разместить неподписанный пакет драйвера
- Шаг 1. создание цифрового сертификата для подписывания кода
- Шаг 2. добавление сертификата в хранилище доверенных корневых центров сертификации
- Шаг 2. настройка клиентского компьютера для поиска пакетов драйверов в дополнительных папках
- Шаг 2. попытка разместить подписанный, но впоследствии измененный пакет драйвера
- Шаг 3. добавление сертификата в компьютерное хранилище доверенных издателей
- Шаг 3. настройка клиентского компьютера, позволяющая устанавливать устройства обычным пользователям
- Шаг 3. попытка разместить пакет драйвера, подписанный надлежащим образом
- Шаг 4. подписывание пакета драйвера устройства сертификатом
- Шаг 4. проверочная установка подписанного пакета драйвера
- Шаг 4. удаление драйвера устройства и пакета драйвера, установленных на предыдущем этапе
- Шаг 5. установка пакета драйвера устройства из дополнительной папки
Все о подписи драйверов windows
Как известно в х64 битных платформах была введена процедура обязательной цифровой подписи всего того, что может попасть в ядро системы, а именно драйверов. О том, на сколько это эффективно и оправданно можно долго спорить, но только одно можно сказать точно — гимора разработчикам тут определенно добавилась, особенно тем, кто раньше никогда подписями не занимался. Также для многих стало крайне не очевидно, каким образом разрабатывать драйвер, когда нет на руках валидного сертификата, а тестировать ведь как-то надо. Вот сча я попытаюсь в краткой и доступной форме рассказать о том как это все делается.
Итак, прежде всего, я бы хотел выделить два типа сертификатов, которые я буду рассматривать в рамках данной статьи — тестовый и настоящий. Разница состоит в том, что настоящий сертификат подписан доверенным CA (Certification Authorities — доверенный издатель), типа VeriSign, GlobalSign ну или самим Microsoft, а тестовый подписан самопальным сертификатом типа от Васи Пупкина.
Тестовый сертификат
Как вы уже наверное догадались, именно с помощью этого типа сертификата можно спокойно разрабатывать драйвер, не имея на руках настоящего, но все не так просто, прежде чем его использовать надо проделать некоторые унылые и мудреные мероприятия:
- Сгенерить сам сертификат и установить его. Это можно сделать с помощью тулзы makecert, например так:
Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer
где
PrivateCertStore — название хранилища
TestCertforWDK — название самого сертификата
TestCert.cer — имя файла с сертификатом
(эта тулза входит в комплект WDK 6000/6001 и расположена bin/SelfSign, в WDK 7600 она почему то не входит…) - Добавить этот сертификат в хранилище с доверенным корневыми CA. Открываем в mmc консоль Сертификаты (Run->mmc->File->Add/Remove Snap-in->Certificates) там находим свой сертификат (например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities).
- Разрешить тестовые подписи. Для этого прописываем в администраторской консоли:
bcdedit.exe –set TESTSIGNING ON
и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.
Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой CA может выдавать сертификаты для подписи драйверов Windows, а только те, которые авторизованы самой Microsoft, это значит, что корневые сертификаты этих издателей должны быть подписаны Microsoft — что, как раз и выражается в виде этого кросс-сертификата. Вот именно из-за отсутствия кросс-сертификата — тестовая подпись, никогда не будет работать как настоящая. Список доверенных CA, которые обладают такими кросс-сертификатами — представлен тут, там же можно скачать и сами кросс-сертификаты.
После того, как вы выложите несколько сотенок $$$ доверенному центру сертификации, они выдадут вам .pfx файл в котором будут содержаться публичный и приватный ключи. Вы его запустите и с помощью нехитрого диалога (как на рисунке ниже), установите в систему.
Подпись драйвера
Процесс подписи для тестового и настоящего сертификата во многом похожи, различия состоят лиш в том, что:
Итак приступим
- Качаем тулзу для подписи — signtool (тоже входит в комплект WDK6000/6001)
- Подписываем, с тестовым сертификатом:
signtool sign /v /s PrivateCertStore /n "TestCertforWDK" driver.sys
где
PrivateCertStore — имя хранилища
TestCertforWDK — имя тестового сертификата
driver.sys — имя драйверас настоящим сертификатом:
signtool sign /v /ac MSCV-GlobalSign.cer /s PrivateCertStore /n "YourTrueCertName" /t http://timestamp.globalsign.com/scripts/timstamp.dll driver.sys
где
MSCV-GlobalSign.cer — имя кросс-сертификата
YourTrueCertName — имя настоящего сертификата
timestamp.globalsign.com/scripts/timstamp.dll — адрес таймстампингового центра, в моем случае global sign
Далее драйвер можно установить программно с помощью специальных АПИ либо с помощью замечательной тулзы
KmdManager
.
Подпись пакета драйверов
В реальной жизни подписи самого драйвера оказывается недостаточно, дело в том, что драйвера устройств как правило поставляются в комплекте с inf-файлом, в котором содержится информация о драйвере и устройствах которые он обслуживает. В этом случае необходимо будет сгенерить cat-файл, который содержит в себе инфу о всех файлах пакета, а потом подписать его точно также, как подписывали драйвер.
Для генерации cat-файла и его подписи нам понадобится:
- Корректный inf-файл (запасайтесь бубнами ребятки)
- Тулза которая генерит этот cat-файл из inf-файлов — inf2cat (эта тулза входит в комплект WDK6001/7600, и написана, как не странно, на .NET)
- После чего генерим cat-файл, например так
inf2cat.exe /driver:releaseamd64 /os:Vista_x64,Server2003_x64,Server2008_x64
где
releaseamd64 — папка в которой находится inf-файл и драйверы
Vista_x64,Server2003_x64,Server2008_x64 — список ОС, на которых должен работать драйвер - Подписываем его точно также, как и драйвер
signtool sign /v /ac MSCV-GlobalSign.cer /s PrivateCertStore /n "YourTrueCertName" /t http://timestamp.globalsign.com/scripts/timstamp.dll catalog.cat
сам драйвер при этом подписывать не обязательно. - Проверяем, что все хорошо подписалось, для этого открываем свойство .cat файла (или драйвера) и смотрим вкладку Digital Signatures — если есть то можем полюбоваться на результат, если нет, то где-то накосячили.
Также более достоверно можно проверить с помощью командной строкиsigntool verify /pa /v /c catalog.cat
EasySign
В результате всех моих исследований на предмет САБЖ-а, я некатал по-быстрому простенькую программку EasySign, которая может подписывать дрова без дополнительного гимора с командной строкой и bat-файлами. Возможно кому-то будет полезно.
Саму прогу можно скачать тут, а мануалку почитать ниже:
- Вбиваем в Inf Dir путь к папке где лежит сам .inf файл и все необходимые файлы к нему прилагающиеся.
- Выбираем ОСи где работает драйвер.
- Cross Cert — указываем путь к кросс-сертификату, если нужно подписать драйвер по-настоящему
- Cert Store — названия хранилища, где лежит наш сертификат (например PrivateCertStore)
- Cert Name — название сертификата (например TestCertforWDK), если сертификат один в хранилище, то можно и не заполнять это поле.
- Time Stamp — адрес таймстампингового центра, для тестового сертификата — можно оставить пустым
- Файлы которые надо подписать, тут нужно обязательно добавить cat файл (если еще не создан, то прописать его имя вручную), а также можно добавить все файлы драйверов
- Generate Catalog Only — если подписывать не надо, а только создать .cat файл
- Жмем Sign — чтобы создать cat-файл и подписать, жмем Log — чтобы почитать что произошло, часто бывают ошибки, например неправильно составлен inf-файл, либо signtool чего-то не нашел и т.п.
Литература по теме
http://msdn.microsoft.com/en-us/library/ff544865(VS.85).aspx
Дополнительные ресурсы
Дополнительная информация по установке устройств:
Как подписать драйвер для работы устройств на windows 10 или windows 7
Разных причин отсутствия подписи много, и раз Вы это читаете, то скорее всего столкнулись с одной из таких причин. В этом примере попробуем установить довольно старый драйвер для звуковой карты, для которого уже истек срок активности сертификата. Архив с драйверами был загружен с веб-сайта производителя ноутбуков, укомплектованных соответствующей видеокартой (нам удалось найти версию драйвера для Windows XP).
Чтоб было удобнее работать с драйвером, он был перемещён в специально созданную под него папку: c:drv (папка с названием “drv” на диске “C”). Пробуем установить драйвер путем добавления его через консоль в хранилище драйверов, с помощью стандартного инструмента pnputil:Pnputil –a c:drvHDALC2.inf
Для этого впишите “cmd.exe” в поисковой строке рядом с кнопкой “Пуск” и нажмите “Запустить от имени администратора”. Если у Вас на этом этапе открывается окно с предупреждением, нажмите “Да”.Можете или скопировать адрес из примера и вставить в консоль нажатием правой кнопки мышки, или ввести вручную.
Ожидаемо, получаем ошибку, указывающую на то, что в INF-файле не удаётся обнаружить информацию о цифровой подписи. 
То же сообщение мы получим если попробуем нажать на файле драйвера ПКМ и выбрать “Установить”.
Настало время попробовать подписать драйвер свежесозданным сертификатом.
Необходимые инструменты
Чтобы сгенерировать подпись и подписать драйвер, вам необходимо загрузить и установить следующие инструменты разработки приложений (с настройками по умолчанию):
Подготовка inf-файла пакета драйвера
INF-файл управляет процессом установки пакета драйвера. Цифровая подпись пакета драйвера находится в файле каталога (файл с расширением .CAT). Убедитесь, что используемый для установки пакета драйвера INF-файл содержит ссылку на файл каталога.
В дополнение к этому, для драйвера тестового устройства «Toaster», использующегося в данном руководстве, Вы должны также изменить штамп времени и номер версии.
Совместный установщик (co-installer) – это предоставляемый производителем устройства программный код, который может быть выполнен в процессе установки устройства и который позволяет более гибко управлять программой установки. Совместный установщик драйвера тестового устройства «Toaster» отображает дополнительные программы, которые может установить пользователь. В данных сценариях совместный установщик не используется, поэтому в следующей процедуре Вы удалите его из INF-файла.
Примечание
Если Ваш пакет драйвера уже имеет цифровую подпись производителя и, следовательно, INF-файл уже ссылается на действительный файл каталога, Вы можете пропустить данную процедуру.
Для подготовки INF-файла пакета драйвера выполните следующие действия:
Подписание драйвера
- Введите
cd C:Program Files (x86)Windows Kits10binx64 - Теперь набор файлов драйверов нужно подписать сертификатом, который вы создали ранее, используя службу Globalsign.
Подписание файла windows exe
У меня есть EXE- файл, который я хочу подписать, чтобы Windows не предупредила конечного пользователя о приложении от «неизвестного издателя». Я не разработчик Windows. Рассматриваемое приложение является заставкой, созданной из приложения, которое генерирует приложения-заставки. Таким образом, я не имею никакого влияния на то, как создается файл.
Я уже узнал, что мне понадобится сертификат подписи кода от ЦС, такого как Verisign или instantssl.com. Что я не понимаю, так это то, что мне нужно сделать (если это вообще возможно), чтобы подписать мой EXE-файл. Какое простое объяснение?
Ответ Мела Грина взял меня дальше, но signtool просит меня указать, какой сертификат использовать в любом случае. Могу ли я получить бесплатный сертификат подписи кода, чтобы проверить, будет ли это работать для меня вообще?
Также, пожалуйста, укажите, какой тип сертификата является правильным. Большинство сайтов упоминают только «подписывание кода» и говорят о подписи приложений, которые фактически скомпилированы пользователем. Это не тот случай для меня.
Подписывание cat-файла с помощью программы signtool
Теперь, когда у Вас имеется файл каталога, Вы можете подписать его с помощью программы SignTool. Независимо от того, используете ли Вы тестовое устройство «Toaster» или любое другое устройство, выполните следующие шаги.
Важно
При подписывании пакета драйвера Вам следует всегда устанавливать штамп времени, определяющий дату создания цифровой подписи. Если сертификат будет отозван по соображениям безопасности, или если закончится срок его действия, действительными будут только те подписи, которые были созданы ранее даты отзыва или окончания срока действия сертификата.
Для подписывания CAT-файла с помощью программы SignTool выполните следующие действия:
/s MyCompanyCertStore Этот параметр задает имя хранилища сертификатов, в котором программа SignTool осуществляет поиск сертификата, указанного в параметре /n. /n MyCompany start toaster.cat |
Наверх страницы
Подписывание пакета драйвера устройства
Для того чтобы подписать пакет драйвера, Вам необходимо иметь цифровой сертификат, предназначенный для подписывания кода. Для получения дополнительной информации о различных типах сертификатов и о процессе их получения обратитесь к разделу «Дополнительные ресурсы» данного руководства. В этом разделе будет описан процесс создания сертификата, который Вы сможете использовать в целях тестирования.
Пошаговая схема подписывания пакета драйвера
Создание цифрового сертификата для подписывания кода
Добавление сертификата в хранилище доверенных корневых центров сертификации
Добавление сертификата в хранилище доверенных издателей
Подписывание пакета драйвера устройства сертификатом
Пошаговая схема размещения пакета драйвера устройства в хранилище драйверов
Попытка разместить неподписанный пакет драйвера
Попытка разместить подписанный, но впоследствии измененный пакет драйвера
Попытка разместить пакет драйвера, подписанный надлежащим образом
Проверочная установка подписанного пакета драйвера
Размещение пакета драйвера устройства в хранилище драйверов
Размещение пакета драйвера устройств в хранилище драйверов на клиентском компьютере позволяет обеспечить наиболее эффективную работу пользователя. После того, как подписанный пакет драйвера помещен в хранилище, Windows считает его надежным. До тех пор, пока для определенного устройства не заданы политики, ограничивающие его установку, пользователь может просто подключить это устройство, а операционная система автоматически установит соответствующий драйвер незаметно для пользователя.
В состав ОС Windows включена утилита PnPUtil, с помощью которой Вы можете работать с хранилищем драйверов, выполняя такие действия, как добавление, удаление и просмотр пакетов драйверов, находящихся в хранилище.
Важно
Создание cat-файла для пакета драйвера
Следующим Вашим действием является создание CAT-файла для пакета драйвера тестового устройства «Toaster» с помощью программы Signability. Эта программа анализирует INF-файл пакета драйвера и генерирует уникальные хеши для всех файлов, на которые ссылается INF-файл.
Если Ваш пакет драйвера уже имеет цифровую подпись производителя, то CAT-файл уже существует, и Вам не нужно создавать новый файл. Вы можете пропустить данную процедуру и перейти к следующему шагу «Подписывание CAT-файла с помощью программы SignTool», чтобы заменить цифровую подпись разработчика драйвера своей собственной.
Примечание
Программа Signability должна выполняться из командной строки, запущенной с повышенными разрешениями.
Для создания CAT-файла для пакета драйвера выполните следующие действия:
signability /driver:c:toasterdevice /os:256 /auto /cat /driver:c:toasterdevice Этот параметр указывает местоположение INF-файла для пакета драйвера. Вы должны указать полный путь. Символ «.» в данном случае не может использоваться для указания текущей папки в относительном пути. /os:256 Этот параметр указывает, что операционной системой является 32-разрядная версия ОС Windows Vista. Для получения полного списка поддерживаемых операционных систем и их кодов выполните команду signability /?. /auto Этот параметр указывает, что процедура должна быть выполнена автоматически, без вмешательства пользователя. /cat Этот параметр указывает, что создается файл каталога, указанный в INF-файле. Signability v2.19 (engine v01.01.0005) Закройте программу Блокнот, когда закончите просмотр отчета. start toaster.cat Откроется диалоговое окно Security Catalog, показывающее, что каталог не подписан. Поскольку CAT-файл не подписан, кнопка просмотра цифровой подписи View Signature недоступна.
|
Создание самоподписанного сертификата и приватного ключа
- Создайте папку “DrvCert” на диске “C”
- Вернитесь в консоль и введите
cd C:Program Files (x86)Windows Kits10binx64 - Создайте самоподписанный сертификат командой
makecert -r -sv C:DrvCertmyDrivers.pvk -n CN="Company" C:DrvCertmyDrivers.cer, — где вместо «Company» можно ввести любое другое название условной компании, для которой издается сертификат. В процессе Вам нужно будет задать пароль. Возьмём для примера “0rPr0RpR”. - Создайте публичный ключ командой
cert2spc C:DrvCertmyDrivers.cer C:DrvCertmyDrivers.spc - Совместите публичный и приватный ключи в сертификате с форматом .pfx с помощью команды
pvk2pfx -pvk C:DrvCertmyDrivers.pvk -pi 0rPr0RpR -spc C:DrvCertmyDrivers.spc -pfx C:DrvCertmyDrivers.pfx -po 0rPr0RpR— где в конце тот пароль, который Вы вводили ранее.
Создание файла каталога
- Теперь нужно создать папку C:DrvCerthda и скопировать в неё все файлы из папки, в которую первоначально был извлечен драйвер из архива (c:drv). Среди этих файлов обязательно должны быть файлы форматов .sys и .inf (в примере: RTKHDAUD.sys и HDALC2.inf).
- Вернитесь в консоль и введите
cd C:WinDDK7600.16385.1binselfsign - Создайте файл CAT (в нём находится информация о расположении файлов в пакете драйвера) на основе файла INF с помощью средства inf2cat.exe (входит в комплект WDK). Для этого запустите следующую команду:
inf2cat.exe /driver:"C:DrvCerthda" /os:7_X86 /verbose.
Установка драйвера
Вводим команду: Pnputil –i –a C:DrvCerthdaHDALC2.inf
Теперь ошибка как при первой попытке не появляется, а вместо неё видим сообщение об успешной установке драйвера. 
Поздравляем с успешной установкой!Можно было и избежать мороки с массой команд и установить драйвер с помощью отключения проверки сертификата, но об этом уже в другой статье.
Установка самоподписанного сертификата
Поскольку созданный только-что сертификат является самоподписанным, по умолчанию система ему не доверяет. Добавьте свой сертификат в хранилище сертификатов локального компьютера:certmgr.exe -add C:DrvCertmyDrivers.cer -s -r localMachine ROOTcertmgr.exe -add C:DrvCertmyDrivers.cer -s -r localMachine TRUSTEDPUBLISHER
Шаг 1. попытка разместить неподписанный пакет драйвера
Windows прерывает попытку установки неправильно подписанного пакета драйвера.
Чтобы попытаться разместить неподписанный пакет драйвера, выполните следующие действия:
Шаг 1. создание цифрового сертификата для подписывания кода
На этом шаге Вы создаете сертификат, который может использоваться для подписывания пакета драйвера тестового устройства «Toaster».
Запустите консоль управления MMC и откройте оснастку Certificates для просмотра имеющихся сертификатов.
Важно
Не запускайте оснастку с помощью команды certmgr.msc, поскольку по умолчанию эта команда открывает хранилище сертификатов учетной записи текущего пользователя, а в данной процедуре требуется, чтобы сертификаты размещались в хранилище локального компьютера.
Для открытия оснастки «Certificates» консоли управления MMC выполните следующие действия:
Теперь Вы можете создать сертификат.
Примечание
Вы не можете использовать открытое ранее окно командной строки Build Environment, поскольку оно было запущено без повышенных разрешений, необходимых для работы программы MakeCert. Запуск программы MakeCert без повышенных разрешений приведет к возникновению критической ошибки отказа в доступе (код 0x5 – Access Denied).
Для создания цифрового сертификата с помощью программы MakeCert выполните следующие действия:
Шаг 2. добавление сертификата в хранилище доверенных корневых центров сертификации
Выполнение данного шага требуется в случае использования локально созданных сертификатов, таких как сертификаты, созданные с помощью программы MakeCert, по которым нельзя проследить прямую цепочку до сертификата доверенного корневого издателя сертификации.
По умолчанию Ваш новый сертификат имеет статус не имеющего доверия (Untrusted), поскольку Windows не может проверить его достоверность в компьютерном хранилище доверенных корневых центров сертификации. Чтобы в операционных системах Windows Vista и Windows Server «Longhorn» любой сертификат считался действительным, необходимо, чтобы по нему можно было проследить прямую цепочку до сертификата, находящегося в этом хранилище.
Выполнение данного шага не требуется в случае использования коммерческих сертификатов, выданных Вам центром сертификации, поскольку эти сертификаты уже имеют свой корневой сертификат в компьютерном хранилище доверенных корневых центров сертификации.
Примечание
Сертификаты, размещенные в хранилище доверенных корневых центров сертификации текущего пользователя, не подтверждают достоверность цифровых подписей пакетов драйверов.
Для добавления тестового сертификата в хранилище доверенных корневых ЦС выполните следующие действия:
Шаг 2. настройка клиентского компьютера для поиска пакетов драйверов в дополнительных папках
В операционных системах Windows Vista и Windows Server «Longhorn» существует параметр реестра, позволяющий Вам указать для операционной системы дополнительные папки, в которых должен производиться поиск драйверов вновь обнаруживаемых аппаратных устройств.
По умолчанию в этом параметре указана только одна папка – «%SystemRoot%Inf». Вы можете добавить в список этого параметра дополнительные папки, разделив их точкой с запятой. Эти папки могут являться как локальными, так и сетевыми папками вида \ИмяСервераИмяПапки.
Чтобы настроить клиентский компьютер для поиска пакетов драйверов в дополнительных папках, выполните следующие действия:
Шаг 2. попытка разместить подписанный, но впоследствии измененный пакет драйвера
Windows также прерывает попытку установки пакета драйвера, который был изменен с момента подписания. Поскольку цифровая подпись включает в себя отпечатки для всех файлов пакета драйвера, изменение любого из них приводит к тому, что проверка достоверности цифровой подписи оканчивается неудачей.
Чтобы попытаться разместить подписанный, но впоследствии измененный пакет драйвера, выполните следующие действия:
Шаг 3. добавление сертификата в компьютерное хранилище доверенных издателей
Для того чтобы Ваш новый сертификат мог выступать в качестве подтверждения достоверности цифровой подписи пакетов драйверов, его также необходимо разместить в компьютерном хранилище доверенных издателей.
Примечание
Сертификаты, размещенные в хранилище доверенных издателей текущего пользователя, не подтверждают достоверность цифровых подписей пакетов драйверов.
Для добавления тестового сертификата в хранилище доверенных издателей выполните следующие действия:
Шаг 3. настройка клиентского компьютера, позволяющая устанавливать устройства обычным пользователям
По умолчанию обычный пользователь не может выполнять процедуру размещения пакета драйвера в хранилище драйверов. Тем не менее, в операционных системах Windows Vista и Windows Server «Longhorn» Вы можете использовать политику компьютера, в которой указываются глобальные уникальные коды (GUID) классов настройки устройств, пакеты драйверов которых пользователи могут размещать в хранилище драйверов.
Примечание
Рассматриваемая здесь процедура предназначена для выполнения на отдельном компьютере, и не может применяться к большому количеству компьютеров. Для применения конфигурации компьютера к большому количеству управляемых рабочих станций используйте групповую политику и службу каталогов Active Directory.
Код GUID класса настройки устройства можно обнаружить либо просмотрев INF-файл из состава пакета драйвера устройства, либо открыв диалоговое окно Device Properties уже установленного устройства.
Для поиска кода GUID класса настройки устройства в INF-файле выполните следующие действия:
Если на компьютере уже установлено работающее устройство, то его код GUID можно посмотреть на странице свойств в диспетчере устройств.
Для поиска кода GUID класса настройки устройства на странице его свойств выполните следующие действия:
Теперь у Вас есть код GUID, соответствующий устройству, которое Вы хотите установить. Вы можете добавить этот код в список политики компьютера, определяющей, какие устройства могут быть установлены обычными пользователями.
Для настройки компьютера, позволяющей обычным пользователям устанавливать устройства, принадлежащие определенному классу, выполните следующие действия:
Шаг 3. попытка разместить пакет драйвера, подписанный надлежащим образом
Чтобы попытаться разместить пакет драйвера, подписанный надлежащим образом, выполните следующие действия
Так как прикрепленная к пакету цифровая подпись является действительной, файлы пакета не были изменены, и отпечатки файлов пакета совпадают с отпечатками, содержащимися в цифровой подписи, Windows успешно поместит пакет драйвера в хранилище, не запрашивая у пользователя никаких действий. По завершении своей работы программа выводит имя, под которым был опубликован пакет драйвера, включающее в себя номер OEM, который Вы можете использовать для того, чтобы впоследствии при необходимости удалить пакет драйвера из хранилища. Запишите номер, присвоенный Вашему пакету драйверов.
Номер, присвоенный Вашему пакету драйвера, может отличаться от приведенного выше в зависимости от количества пакетов, уже установленных на компьютере. |
Вы можете просмотреть список пакетов, находящихся в хранилище драйверов, запустим программу PnPUtil с параметром -e.
Чтобы убедиться, что пакет находится в хранилище драйверов, выполните следующие действия:
Шаг 4. подписывание пакета драйвера устройства сертификатом
Если Вы используете тестовое устройство «Toaster» и его пакет драйвера – выполните следующие действия для замены существующей цифровой подписи своей собственной. Также эти действия следует выполнить, если Вы хотите внедрить в Вашей организации политику, для работы которой все драйверы устройств должны быть подписаны сертификатом Вашей организации.
Если Вы используете пакет драйвера, уже подписанный производителем, то этот пакет уже содержит рабочий файл каталога (CAT-файл), на который ссылается INF-файл. В этом случае Вы можете пропустить первые два шага и начать с шага «Подписывание CAT-файла с помощью программы SignTool».
Шаги, необходимые для подписывания драйвера устройства:
Подготовка INF-файла пакета драйвера
Создание CAT-файла для пакета драйвера
Подписывание CAT-файла с помощью программы SignTool
Шаг 4. проверочная установка подписанного пакета драйвера
На этом этапе пакет драйвера находится в хранилище драйверов. Пакет был помещен администратором в хранилище драйверов, операционная система выполнила проверку достоверности цифровой подписи, и, таким образом, драйвер устройства может быть установлен обычным пользователем. От пользователя требуется просто подключить устройство.
Примечание
Несмотря на то, что Windows может устанавливать драйверы, расположенные в хранилище драйверов, от имени обычного пользователя, в следующей процедуре Вы запускаете программу Enum.exe от имени администратора. Наличие повышенных разрешений необходимо не для процесса установки драйвера, а для того, чтобы можно было программно эмулировать установку аппаратного устройства.
Для выполнения проверочной установки пакета драйвера, размещенного в хранилище драйверов, выполните следующие действия:
Примечание
Не удаляйте устройство из системы, пока Вам не будет предложено сделать это в следующей процедуре.
Наверх страницы
Шаг 4. удаление драйвера устройства и пакета драйвера, установленных на предыдущем этапе
Прежде чем Вы сможете установить драйвер устройства из дополнительной папки, Вы должны удалить уже установленный драйвер и пакет драйвера этого устройства из хранилища драйверов.
Примечание
Вам необходимо удалить установленный ранее пакет драйвера только лишь потому, что в данном руководстве демонстрируется дополнительный метод его установки.
Для удаления установленного ранее устройства выполните следующие действия:
Устройство перестанет отображаться в окне диспетчера устройств. Устройство будет отключено, а его драйвер удален из памяти. Вместо символов ## в этой команде Вы должны подставить номер, записанный Вами ранее. Если Вы забыли этот номер, запустите команду pnputil -e и найдите в списке устройство «Toaster». Пакет будет удален из хранилища драйверов. |
Шаг 5. установка пакета драйвера устройства из дополнительной папки
Теперь, когда пакет драйвера находится в созданной Вами папке, а клиентский компьютер настроен для поиска в этой папке пакетов драйверов подключаемых устройств, Вы можете установить устройство.
Для установки пакета драйверов из общей сетевой папки выполните следующие действия:


