Как установить драйвера через powershell

Обновлено: 07.07.2024

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

Тем не менее, у меня есть много этих систем, и я не хочу делать больше нажатий, что необходимо. У меня есть средства для удаленного развертывания команд Powershell или CMD, и я хотел бы найти способ автоматического получения последней версии драйвера для конкретного аппаратного устройства из Центра обновления Windows .

1 ответ 1

Итак, если я правильно понял:

Я рекомендую делать это, используя эти два этапа.

Первый этап: получить драйвер для сенсорной панели

Это легко и просто. Обновления, которые Microsoft обычно распространяет через Центр обновления Windows, также доступны на веб-сайте каталога Центра обновления Майкрософт по адресу:

. и это включает в себя драйверы устройств. Найдите драйверы, которые вам нужно установить, и загрузите его. Вы получите файл .cab.

Этап второй: вводить их

Для автономной ОС

Вопрос указывает на то, что образ ОС находится на работе. Следовательно, я полагаю, что проще добавить драйвер (в данном случае драйвер TouchPad) к изображениям, если эти образы являются WIM-изображениями или существует автономный доступ к ОС до того, как они будут созданы.

Получив драйвер (ы) из каталога Центра обновления Майкрософт, поместите файл (ы) .cab драйверов (драйверов) в папку, например " C:\Test\Drivers ", и извлеките файл (ы) .cab. Содержимое каждого файла .cab должно быть в подпапке. Затем откройте Windows PowerShell и с помощью команды Add-WindowsDriver введите драйверы в образ Windows.

Возможно, вы захотите обновить Windows PowerShell до 5.1, если вы не используете Windows 10. Кроме того, вы можете установить последнюю версию средств развертывания, а не просто использовать ту, которая поставляется с Windows. Средства развертывания включены в набор средств для оценки и развертывания Windows. Скачайте онлайн установщик (adksetup.exe) который 2 МБ. Запустите его и выберите «Инструменты развертывания». Это 90 МБ скачать.

Теперь, чтобы добавить драйверы, расположенные в C:\test\drivers как описано выше, в автономный образ Windows, смонтированный в c:\offline , введите в Windows PowerShell следующую команду:

Давайте немного его изменим: ОС, которую вы хотите создать, находится в автономном режиме, и у вас есть к ней доступ. Например, на этом компьютере физически смонтирован жесткий диск системы, которая в настоящее время является образом, а его раздел ОС - D:. Или он уже записан в VHD-файл, VHD-файл смонтирован, а раздел ОС теперь D:. Введите следующую команду в Windows PowerShell:

Для онлайн ОС

Обновление: Microsoft выполнила все вопросы, касающиеся использования Windows PowerShell для добавления драйвера в работающую Windows.Итак, я пошел вперед и попробовал это: это было неправильно. Следовательно, я обновляю этот ответ, чтобы ввести новый способ.

Получив драйвер из каталога Центра обновления Microsoft, распакуйте файл .cab драйвера. Он содержит как минимум один INF-файл.

Запустите InfDefaultInstall.exe чтобы указать на соответствующий файл INF. Например, я получил драйвер устройства с netmosu.inf . Итак, я перешел в свою папку и запустил:

В Windows 8.1 и 10 это устанавливает драйвер, даже если устройство отсутствует и драйвер не нужен. Теперь вы можете добавить устройство в любое время и просто использовать его. На Windows 7 это не работает.

Обновите живую систему, прежде чем создавать ее

Приведенные выше методы касаются обновления образа ОС либо во время создания образа, после создания образа или после развертывания образа, когда ОС запускается. Почему не до всего этого?

Хорошо известная техника - установить Windows в системе, обновить все в ней (включая все драйверы), а затем запустить на ней утилиту sysprep . Жесткий диск этого компьютера теперь можно создать образ и развернуть в аналогичных системах.

  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

The opinion expressed by me is not an official position of Microsoft

  • Изменено Vector BCO Moderator 4 июня 2019 г. 13:33
  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

The opinion expressed by me is not an official position of Microsoft

  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

Все ответы

The opinion expressed by me is not an official position of Microsoft

  • Предложено в качестве ответа Alexander Rusinov Moderator 3 июня 2019 г. 9:02

The opinion expressed by me is not an official position of Microsoft

The opinion expressed by me is not an official position of Microsoft

  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

Add-WindowsDriver - Microsoft Docs

  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

тут спецы одни и теже.

The opinion expressed by me is not an official position of Microsoft

The opinion expressed by me is not an official position of Microsoft

  • Изменено Vector BCO Moderator 4 июня 2019 г. 13:33
  • Помечено в качестве ответа Vector BCO Moderator 22 июля 2019 г. 11:14

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()

$Criteria = "IsInstalled=0 and Type='Driver' and IsHidden=0"
Write-Host('Searching Driver-Updates. ') -Fore Green
$SearchResult = $Searcher.Search($Criteria)
$SearchResult|ft -a title
$Updates = $SearchResult.Updates

$Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

$UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
$updates | % < $UpdatesToDownload.Add($_) | out-null >
Write-Host('Downloading Drivers. ') -Fore Green
$UpdateSession = New-Object -Com Microsoft.Update.Session
$Downloader = $UpdateSession.CreateUpdateDownloader()
$Downloader.Updates = $UpdatesToDownload
$Downloader.Download()

Write-Host('Installing Drivers. ') -Fore Green
$Installer = $UpdateSession.CreateUpdateInstaller()
$Installer.Updates = $UpdatesToInstall
$InstallationResult = $Installer.Install()
if($InstallationResult.RebootRequired) <
Write-Host('Reboot required! please reboot now..') -Fore Red
> else

Write-Host('Press any key to exit . ') -Fore Yellow
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()

$Criteria = "IsInstalled=0 and Type='Driver' and IsHidden=0"
Write-Host('Searching Driver-Updates. ') -Fore Green
$SearchResult = $Searcher.Search($Criteria)
$SearchResult|ft -a title
$Updates = $SearchResult.Updates

$Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

date

03.09.2021

directory

PowerShell, Windows 10, Windows Server 2019

comments

комментариев 7

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

В этой статье мы покажем несколько способы создания резервной копии (бэкапа/экспорта) всех драйверов Windows и способы их восстановления с помощью встроенных инструментов ( DISM , pnputil.exe или PowerShell командой Export-WindowsDriver ).

PowerShell командлет Export-WindowsDriver

В Windows 10 и Windows Server 2019/2016 есть специальный Powershell командлет Export-WindowsDriver, который позволяет экспортировать все установленные в системе сторонние драйвера (имеются в виду не родные драйвера Microsoft) напрямую из хранилища драйверов (Driver Store). Данный командлет позволят существенно облегчить и ускорить процесс переустановки Windows, т.к. раньше для создания резервной копии драйверов, установленных в системе, приходилось использовать стороннее ПО, например, DoubleDriver, DriverMax и пр.

Чтобы извлечь из текущего (онлайн) образа Windows 10 все установленные драйвера сторонних производителей, откройте консоль PowerShell с правами администратора и выполните команду:

Export-WindowsDriver –Online -Destination c:\drivers

Примечание. C:\drivers каталог, в который нужно экспортировать файлы драйверов. Создайте его предварительно.

Если нужно извлечь драйвера из офлайн образа Windows, смонтированного, например, в каталог c:\win_image, команда должна выглядеть так.

Export-WindowsDriver -Path c:\win_image -Destination c:\drivers

После запуска командлета на экране появится информация о всех экспортируемых драйверах, которые не являются частью ОС. В результате выполнения команды PowerShell в целевом каталоге окажется резервная копия всех драйверов Windows из каталога C:\Windows\System32\DriverStore\FileRepository\ . Каждый драйвер и все связанные с ним файлы сохраняется в собственный каталог, который называется по имени inf-файла драйвера.

Export-WindowsDriver powershell командлет для создания резервной копии драйверов в Windows со всеми inf файлами

В каждом каталоге есть все файлы, необходимый для установки драйвера в системе (не только inf файлы, но и все связанные sys, dll, exe и другие типы файлов). Командлет Export-WindowsDriver строит список файлов, которые необходимы для установки драйвера в соответствии со списком файлов, указанных в секции CopyFiles inf-файла драйвера.

inf файл драйвера

Чтобы отобразить список всех экспортируемых драйверов в удобном виде с указанием класса, производителя и версии драйвера, выполните экспорт драйверов двумя командами:

$BackupDrv = Export-WindowsDriver -Online -Destination c:\drivers

После чего выведите результаты выполнения команды в табличной форме:

$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName

Перед вами появится таблица, содержащая класс драйвера, производитель, версию и дату.

таблица со списком сторонних драйверов, установленных в Windows

Вы можете выгрузить информацию об экспортированных драйверах в CSV файл:

$BackupDrv| Select-Object ClassName, ProviderName, Date, Version |Export-Csv c:\ps\drivers_list.txt

Можно вывести список драйверов определенного класса устройств с помощью атрибута класса ClassName. Например, чтобы вывести только драйвера принтеров, выполните команду:

Чтобы вывести список драйверов определенного производителя, воспользуйтесь командой:

выбор драйверов по различным классам

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

Export-WindowsDriver -Destination "\\msk-fs01\drivers\desktop\$((Get-WmiObject -Class win32_computersystem).Model)" -Online

сохранить в сетевой каталог все драйвера для каждой модели компьютера

Как вы видите, создался каталог с названием модели компьютера и все драйвера сохранены в него.

Резервное копирование драйверов в Windows с помощью DISM

Для создания резервной копии драйверов и их импорта в образ Windows также можно использовать утилиту DISM. Чтобы экспортировать драйвера в каталог C:\Drivers, откройте командную строку с правами администратора и выполните команду:

dism /online /export-driver /destination:C:\Drivers

Экспорт 1 из 27 — oem0.inf: Пакет драйверов успешно экспортирован.

бэкап драйверов с помощью dism /online /export-driver

В нашем примере утилита DISM успешно экспортировала в указанный каталог 27 драйверов.

Экспорт установленных драйверов с помощью утилиты PNPUtil

В состав всех версий Windows входит встроенная утилита PNPUtil.exe , которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске). Утилиту PNPUtil также можно использовать для экспорта драйверов из хранилища Windows.

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

pnputil.exe /export-driver * c:\drivers

pnputil.exe export-driver (сохранить все драйвера в каталог drivers)

Драйвера из получившегося каталога можно распространить на другие системы вручную с помощью PowerShell или DISM (Как интегрировать драйвера в образ Windows), или установить с помощью скриптов на основе PNPUtil, DISM, PowerShell, MDT, SCCM и т.п.

С помощью pnputil вы можете экспортировать не только сразу все драйвера, но и один определенный драйвер. Для этого вам нужно получить имя его INF файла.

Полный список драйверов можно вывести так:

Или с помощью PowerShell. Например, нам нужно экспортировать только драйвера сетевой карты Realtek:

Get-WindowsDriver -Online | where

Скопируйте имя inf файла ( oem5.inf ) и выполните следующую команду для его экспорта:

Mkdir c:\drivers\realtek
pnputil.exe /export-driver oem5.inf c:\drivers\realtek

В результате вы экспортировали inf файл сетевого драйвера rt640x64.inf со всеми необходимыми файлами.

экспорт только одного определенного драйвера с помощью встроенной утилиты pnputil в Windows

Windows 10: восстановление драйверов из резервной копии

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

Чтобы установить конкретный драйвер, щелкните правой кнопкой по INF файлу и выберите пункт меню “Установить”.

установить драйвер из inf файла

Также можно установить драйвер конкретного устройства через диспетчер оборудования. В диспетчере устройств выберите устройство, драйвер которого вы хотите заменить, выберите пункт “Обновить драйвер” -> “Выполнить поиск драйверов на этом компьютере”. Укажите путь к каталогу с резервной копией драйверов. Чтобы автоматически просканировать на подходящие драйвера все вложенные папки, выберите соответствующую опцию.

ручная установка драйвера из резевной копии

Но есть более простой способ установки сразу всех драйверов из указанного каталога. Для этого воспользуйтесь следующим PowerShell скриптом:

$driver_inf_files = Get-ChildItem -Path "C:\Drivers\" -Filter "*.inf" -Recurse -File
foreach($driver_inf_file in $driver_inf_files)$driver_inf_file.FullName
pnputil.exe -i -a "$driver_inf_file.FullName"
>

Данный PowerShell скрипт последовательно обходит все папки в указанном каталоге, ищет все inf файлы и устанавливает драйвера в хранилище драйверов (C:\Windows\System32\DriverStore) с помощью утилиты PNPUtil.

В Windows 10 и выше у утилитs pnputil появилась специальная опция subdirs, которая позволяет установить все драйвера из указанной папки (включая вложенные) с помощью однострочной команды:

pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install

Также можно импортировать все драйвера из каталога с резервной копией в офлайн Windows с помощью параметра Add-Driver утилиты DISM (в этом примере мы разрешаем установку неподписанных драйверов):

DISM /image:c:\win_image /Add-Driver /Driver:C:\Drivers /Recurse /ForceUnsigned


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

Для получения полного описания установленных драйверов, можно использовать PowerShell. Get-WindowsDriver в PowerShell выводит основную информацию драйверах; как для сторонних драйверов, так и для установленных по умолчанию.

Получить список драйверов с помощью PowerShell

  1. Нажмите Win + Q и введите Windows PowerShell в поле поиска. В результатах поиска щелкните правой кнопкой мыши на Windows PowerShell и выберите Запуск от имени администратора.

Запуск Windows PowerShell от имени администратора в Windows 10

Получение данных о драйверах компьютера через PowerShell

Вот как можно изменять параметры (показаны в [ . ]), согласно вашем ожиданиям:

  • 1 = только ошибки
  • 2 = ошибки и предупреждения
  • 3 = ошибки, предупреждения и информация
  • 4 = вся информация, указанная выше, и отладочный вывод

Например, чтобы получить получает подробные сведения о USB.inf драйвере включенном в образ Windows, используйте эту команду:

Например, чтобы найти загрузчик bootmgr фалов на С:, когда вы работаете в PowerShellс диска D: , используйте этот командлет:

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

Читайте также: