
pnputil /add-driver с путем к INF-файлу добавляет драйвер в хранилище и сразу запускает его. Ключ /d удаляет драйвер.Get-WindowsDriver -Online только показывает драйверы работающей системы, а ключ -All добавляет и драйверы Microsoft.Get-PnpDevice выбирает устройство, а через конвейер передает его в Disable-PnpDevice. Включается устройство обратно командой Enable.Полный текст первых минут лекции «Команды PowerShell и pnputil для установки драйверов» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Добро пожаловать на лекцию про команды PowerShell, команды DOS для управления драйверами. На этой лекции мы увидим PNP-Util, DISM, GetWindowsDrivers.
Мы познакомимся с командной строкой и какие у нас есть инструменты неграфические, чтобы управлять нашими драйверами и нашим хранилищем драйверов.
Это очень важно, чтобы делать автоматизацию процессов. заходим в CMD с правами админа PowerShell. Начнем с того, что посмотрим, что самая важная команда PNPUtile - это не команда, а это обычный экзешник, это обычная программа, которая написана Microsoft, кстати она была изменена с Windows 7, то
есть все вот эти вот слэши, параметры изменились с Windows 7. Они их сделали в стиле PowerShell типа вот и нам Devices. Кстати нам Devices работает меньше с драйверами, а больше с девайсами. Очень похоже на Device Manager. Этот PNP Utile - это основной наш инструмент, это основная команда. Она
может показать нам драйвера. Видите, по умолчанию показывает только драйвера, не встроенные в Windows, то есть OEM, драйвера внешних производителей железо. И есть original name, оригинальное имя, и есть новое имя, которое ему дали во время установки. PnpUtil, я забегу вперед, это единственный инструмент, который позволяет
нам в командной строке добавлять драйвера внутрь системы. Конечно, мы можем сделать свою программу, которая это делает, но из тех встроенных Windows, это единственная, которая может добавлять и удалять Команды как DISM и GetWindowsDriver могут только давать информацию, но не добавлять и не удалять драйвера с рабочей онлайн-системы.
Потому что DISM вообще инструмент, который предназначен для работы с имиджем, то есть с образами Windows, типа ISO файлами. Видите, написано Deployment Image.
Он, да, умеет работать с драйверами, но он для этого не предназначен. Я могу написать ему слэш онлайн и тогда он будет работать не с имиджем, а с текущей системой, то есть с этим текущим Windows, с рабочим моим Windows, который онлайн сейчас.
Он для этого не предназначен, поэтому его функционал очень ограничен. Если мы здесь найдем, что он умеет делать с драйверами, то мы видим, что он умеет и удалять, и добавлять драйвера, но только в оффлайн, только в имидже, который не работает, только с изофайлами, условно говоря.
Это не изофайл, это как бы изофайл, потому что изофайл предназначен для DVD и CD-ROM, а имидж сделан в формате WIM. Но это копия нашего Windows в отдельном файле, который не работает, типа инсталляционный диск, условно говоря.
Это называется offline, выключенный имидж, выключенный файл, и он в этот выключенный имидж может добавлять драйвера, удалять драйвера. То есть я могу заранее до установки Windows добавить туда драйвер, например, рейд-контроллера или какой-то вопринтера, например.
Но это все в офлайн. В онлайн, в running operating system он умеет только давать инфу и делать импорт и экспорт. То есть экспортировать драйвера и давать инфу.
Он не умеет добавлять драйвера в существующую рабочую операционку. Поэтому DISM может нам немножко помочь, но не более того.
Каждый раз, когда вы видите DISM, знайте, что это инструмент для работы с имиджами, с образом Windows, который выключен, который еще не установлен. Вот какую информацию он нам дает.
Он нам дает информацию про INF, оригинальный, его текущее имя, OEM8 и так далее. PNP-Util, заметьте, умеет намного-намного больше.
Он умеет работать и с девайсами, то есть смотреть на весь мир с точки зрения не драйвера, а устройств. Это очень похоже на девайс-менеджер.
Видите, я ему говорю, покажи мне какие устройства типа дисплей. И он мне показывает, что EM8 относится вот к такому Hardware ID. PNP-Util это самый важный инструмент, который действительно умеет все делать.
Этот DISM, он вообще совершенно для другого, для обслуживания образов до установки. Также есть новая команда GetWindowsDriver. Я очень рассчитывал, что наконец-то будет PowerShell, который умеет работать с драйверами, а не PNPUtile, старый экзешник.
Но к моему разочарованию, он действительно умеет показывать информацию про файлы, про драйвера. Он мне действительно показывает, что это INF, даже показывает, где он находится в DriverStore, то есть в центральном хранилище драйверов, где это все находится, он мне показывает.
Но добавлять и удалять драйвера он не умеет. И мы сейчас поймем почему. Удобно, что он показывает мне версию. И он может еще показать All.
All это не только драйвера третьей стороны, то есть не Microsoft. А All покажет мне также драйвера самого Microsoft. Обычно это никому не нужно, потому что если они встроены в Windows, зачем мне с ними что-то делать?
Мне надо экспортировать, импортировать драйвера, которые не встроены в Windows. Но, в принципе, чтобы вы знали, он умеет также показывать информацию про драйверы, которые самого Microsoft и встроены в Windows.
Интересно, сколько таких драйверов есть, да? Мы можем это подсчитать, мы можем сделать команду measure object, и он нам посчитает, сколько линий есть в ответе.
То есть, сколько линий вернула предыдущая команда. Только надо это все правильно написать. Measure – это измерение, и что-то он у меня не пишется.
Сейчас я пойду втихаря в Google и посмотрю, как он пишется. Вот так он пишется. Meajure.
Object. Измерь объекты, которые к тебе пришли, и посчитай мне, сколько линий есть. Можно без линий. Ну, неважно.
Всего 665 линий. Короче, ответ Windows Driver All, встроенная Windows 665. А если я сделаю FT, он мне добавит пару заголовков там в начале.
И еще добавит 4 строчки, потому что это 4 строчки самой таблицы в начале. Это все не важно. Главное, что мы увидели, что в Windows есть куча встроенных драйверов, и они общего характера, то есть они могут там обслуживать все экраны одним драйвером.
Но это не дает особый функционал конкретного устройства. Для использования функционала от конкретного устройства надо драйвер-производителя.
Так, мы посмотрели, что такое GetWindowsDriver, посмотрели DSM, PNP-Util. Если вы меня спрашиваете, что запомнить с этой лекцией, запомните только одно, что PNP-Util это единственное, что надо помнить.
Все остальное вы можете даже не помнить. Но это мое личное мнение. Для формальности вы должны знать существование всех этих команд.
PNPUtile единственный, кто умеет добавлять драйвера, удалять драйвера из рабочей программы. Конечно, есть другие инструменты, которые не встроены в Windows.
Я могу с интернета скачать миллионы инструментов. Я вам говорю только про те инструменты, которые встроены внутрь самой операционки. Мы сейчас хотим добавить драйвер.
используем pnp-util-add-driver и даем полный путь папке, где лежит файл inf. И это добавляет нам драйвер в хранилище и сразу же его запускает в память. То есть, он его и добавляет и запускает.
И теперь, если мы посмотрим на список драйверов, даже getWindowsDriver, мы увидим, что у нас появился после OEM 8, еще OEM 9. До этого его не было. То есть, мы смогли добавить драйвер в центральное хранилище.
Мы также можем удалить драйвер с этого центрального хранилища pnp-util/d. Видите, он его удалил. И если мы сделаем опять getWindowsDriversOnline, мы увидим, что опять OAM8 его больше не существует.
Кстати, видите, вот эти вот четыре строчки в начале - это вот то, что FormatTable сделал ft. И