Powershell как в windows 10 быстро выявить дубликаты драйверов и удалить их
Значительная часть проблем, связанных с работой Windows 10 после установки имеет отношение к драйверам устройств и, когда такие проблемы решены, а нужные и «правильные» драйверы установлены, имеет смысл создать их резервную копию для быстрого восстановления после переустановки или сброса Windows 10. О том, как сохранить все установленные драйверы, а затем — установить их и пойдет речь в этой инструкции. Также может оказаться полезным: Резервная копия системы Windows 10.
Примечание: существует множество бесплатных программ для создания резервных копий драйверов, таких как DriverMax, SlimDrivers, Double Driver и прочих Driver Backup. Но в этой статье будет описан способ, позволяющий обойтись без сторонних программ, только лишь встроенными средствами Windows 10.
Сохранение установленных драйверов с помощью DISM.exe
Инструмент командной строки DISM.exe (Deployment Image Servicing and Management) предоставляет пользователю самые обширные возможности — от проверки и восстановления системных файлов Windows 10 (и не только) до установки системы на компьютер.
В этом руководстве будем использовать DISM.exe для того, чтобы сохранить все установленные драйверы.
Шаги для сохранения установленных драйверов будут выглядеть следующим образом
- Запустите командную строку от имени Администратора (сделать это можно через меню правого клика по кнопке «Пуск», если у вас не отображается такой пункт, то введите «командная строка» в поиске на панели задач, после чего нажмите правой кнопкой по найденному пункту и выберите «Запустить от имени администратора»)
- Введите команду dism /online /export-driver /destination:C:\MyDrivers (где C:\MyDrivers папка для сохранения резервной копии драйверов, папка должна быть создана заранее вручную, например, командой md C:\MyDrivers) и нажмите Enter. Примечание: вы можете использовать любой другой диск или даже флешку для сохранения, не обязательно диск C.
- Дождитесь завершения процесса сохранения (примечание: не придавайте значения тому, что у меня на скриншоте сохранилось всего два драйвера — на реальном компьютере, а не в виртуальной машине, их будет больше). Драйверы сохраняются в отдельные папки с именами oem.inf под разными номерами и сопутствующими файлами.
Теперь все установленные сторонние драйверы, а также те, что были загружены из Центра обновлений Windows 10, сохранены в указанную папку и могут быть использованы для ручной установки через диспетчер устройств или, например, для интеграции в образ Windows 10 с помощью того же DISM.exe
Создание резервной копии драйверов с помощью pnputil
Еще один способ создания резервной копии драйверов — использования утилиты PnP, встроенной в Windows 7, 8 и Windows 10.
Для сохранения копии всех используемых драйверов выполните следующие шаги:
- Запустите командную строку от имени администратора и используйте команду
- pnputil.exe /export-driver * c:\driversbackup (в данном примере все драйверы сохраняются в папку driversbackup на диске C. Указанная папка должна быть создана заранее.)
После выполнения команды в заданной папке будет создана резервная копия драйверов, точно такая же, как и при использовании первого описанного способа.
Использование PowerShell для сохранения копии драйверов
И еще один способ выполнить то же самое — Windows PowerShell.
При использовании всех трех способов резервная копия будет одинаковой, тем не менее, знание о том, что таких способов более чем один может пригодиться в случае неработоспособности используемого по умолчанию.
Восстановление драйверов Windows 10 из резервной копии
Для того, чтобы заново установить все сохраненные таким образом драйверы, например, после чистой установки Windows 10 или ее переустановки, зайдите в диспетчер устройств (также можно сделать через правый клик по кнопке «Пуск»), выберите устройство, для которого нужно установить драйвер, кликните по нему правой кнопкой мыши и нажмите «Обновить драйвер».
После этого выберите «Выполнить поиск драйверов на этом компьютере» и укажите папку, где была сделана резервная копия драйверов, после чего нажмите «Далее» и установите нужный драйвер из списка.
А вдруг и это будет интересно:
23.08.2019 в 20:27
24.08.2019 в 10:05
На семёрке, если честно я этого и сам не пробовал. но в команде вместо слэша попробуйте -export-driver
По второму пункту есть догадка: неподписанный файл inf.
29.10.2019 в 00:01
Попробовал -export-driver, не работает. В справке написано:
pnputil.exe -a c:\drivers\*.inf -> Добавляет все пакеты в c:\drivers\
14.02.2020 в 11:29
14.02.2020 в 14:01
Не устарели. Это системные инструменты Windows встроенные, которые продолжают работать и на 1909.
11.04.2020 в 14:47
19.05.2020 в 14:22
Всё отлично сработало по первому способу. Windows 10 1809. Спасибо.
03.07.2020 в 19:26
30.09.2020 в 14:19
Первый способ сработал на ура. Windows 10 Ver. 1607. Сохранил на установочную флешку. А как создать собственную сборку виндовс 10? С драйверами и т.д?
01.10.2020 в 09:35
11.10.2020 в 12:53
Собираюсь переставлять 10-ку. Сейчас у меня Windows 10 Pro 19041. Опробовал сии три метода.
Всё работает. Тщательно сравнил результаты.
Итак: DISM и PowerShell создают полностью одинаковый набор абсолютно одинаковых файлов.
16.10.2020 в 20:48
29.10.2020 в 18:25
Дмитрий, добрый день!
Благодарю за статью. Пробовал бэкап с помощью DISM и PowerShell. Оба прекрасно работают. Кстати, по ошибке запустил команду для DISM (dism /online /export-driver /destination:C:\MyDrivers) не в ней, а в PowerShell. Как ни странно, результат получился такой же, как и в DISM. :-) Я потом специально проверил. А сейчас вот задался целью сохранить всё это богатство в облаке. В связи с этим встал вопрос: можно ли сжимать архив с драйверами? И если можно, то насколько сильно? Подскажите, пожалуйста.
29.10.2020 в 20:12
29.10.2020 в 20:25
Большое спасибо за ответ и за такой классный сайт!
05.11.2020 в 21:35
06.11.2020 в 13:42
Здравствуйте.
Именно драйверы на оборудование установленное таким образом в резервную копию попадают, а не все из дистрибутива Windows.
16.11.2020 в 20:56
После обновления системы (в пределах версии 1903 Home, то есть без обновления до 1909 Home) на планшете сделал повторный бэкап драйверов с помощью DISM. Только теперь вместо 78 драйверов сохранилось аж 102. Беглое сравнение папок сказало о том, что в новых 102 драйверах присутствуют также и 78 старых (честно говоря, я сравнивал не все, но первые 10-15 папок позволили мне сделать такой вывод). То есть, я так понимаю, папку со старым бэкапом можно смело удалять, да?
И подскажите, пожалуйста, ещё один нюанс. Недавно наткнулся на информацию, что якобы с помощью программы Dism++ можно забэкапить больше драйверов, если во время процедуры выставить галочку напротив пункта «Предустановленные». Так ли это? Стоит ли это делать? Или достаточно и тех, что были мной получены с помощью DISM через CMD?
17.11.2020 в 09:58
17.11.2020 в 12:01
Благодарю за разъяснение! И ещё раз спасибо за Ваш сайт! Реально помогает.
28.11.2020 в 08:49
На win 8.1 через командную строку всё работает. Сделал переустановку win без флешки и дисков, воспользовался сохраненными дровами, всё быстро и хорошо. Респект автору!
06.12.2020 в 11:43
Все способы отлично работают в Win-10x64_SL_Home(RU)_1909. Одно только НО: как при восстановлении распознать в списке драйвер для отдельного конкретного устройства?
03.01.2021 в 17:50
03.01.2021 в 19:24
24.01.2021 в 09:41
Спасибо. Первый вариант подошел через cmd. Win10 1607
07.02.2021 в 15:50
Результат не одинаковый. При просмотре СВОЙСТВ папок с сохранёнными драйверами, больше всего файлов при сохранении через ДИСМ и ПОВЕРШЕЛ. В ПНПУТИЛ, меньше файлов получается.
05.03.2021 в 17:33
Автор спасибо большое у меня первый метод сработал отлично
30.05.2021 в 04:11
А вот, как заявлено в статье, на 7-ке то и не получается сделать бэкап ни одним из способов. Команд Export-Driver и подобных просто нет в списке данных утилит.
Печально.
29.06.2021 в 09:26
Yury, а вы прочитайте внимательнее название статьи. это методы для win10
27.08.2021 в 09:14
Прекрасно сработал первый способ на W10 micro. Даже не ожидал. Больше времени набирал командную строку, чем выводились драйвера. Большое спасибо!
12.09.2021 в 20:12
вин 10*64 21Н повершел через админа команда
бэкап создан, спасибо!
25.10.2021 в 08:27
После переустановки или чистой установки 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-файла драйвера.
В каждом каталоге есть все файлы, необходимый для установки драйвера в системе (не только inf файлы, но и все связанные sys, dll, exe и другие типы файлов). Командлет Export-WindowsDriver строит список файлов, которые необходимы для установки драйвера в соответствии со списком файлов, указанных в секции CopyFiles inf-файла драйвера.
Чтобы отобразить список всех экспортируемых драйверов в удобном виде с указанием класса, производителя и версии драйвера, выполните экспорт драйверов двумя командами:
$BackupDrv = Export-WindowsDriver -Online -Destination c:\drivers
После чего выведите результаты выполнения команды в табличной форме:
$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName
Перед вами появится таблица, содержащая класс драйвера, производитель, версию и дату.
Вы можете выгрузить информацию об экспортированных драйверах в 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 успешно экспортировала в указанный каталог 27 драйверов.
Экспорт установленных драйверов с помощью утилиты PNPUtil
В состав всех версий Windows входит встроенная утилита PNPUtil.exe , которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске). Утилиту PNPUtil также можно использовать для экспорта драйверов из хранилища Windows.
Откройте командную строку с повышенными правами и выполните команду:
pnputil.exe /export-driver * c:\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 со всеми необходимыми файлами.
Windows 10: восстановление драйверов из резервной копии
После переустановки Windows вы можете использовать каталог с резервной копией драйверов для их установки в чистой системе.
Чтобы установить конкретный драйвер, щелкните правой кнопкой по 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 .
В этой статье мы обсудим, как использовать этот командлет для извлечения информации о драйверах в Windows 10/8.1.
Получить список установленных драйверов с помощью PowerShell
1. Нажмите Ключ Windows + Q , введите Windows PowerShell в поле поиска. В результате щелкните правой кнопкой мыши Windows PowerShell и выберите Запуск от имени администратора . Если вам будет предложено ввести пароль учетной записи пользователя, укажите это.
2. Далее, в окне Windows PowerShell вы можете ввести этот командлет после выбора параметров и нажать клавишу Enter. Общий командлет выглядит так:
Вот как вы можете изменить параметры ( показано в [] ) в соответствии с вашими требованиями:
-Online . Указывает, что действие необходимо выполнить в операционной системе, которая в данный момент работает на локальном компьютере.
-Все . Включите его, чтобы отобразить информацию о драйверах по умолчанию. Если вы не укажете этот параметр, в списке указаны только сторонние драйверы.
Например, PS C: \> Get-WindowsDriver –Online -All
-Driver . Указывает INF-файл или папку, содержащую INF-файлы драйверов, о которых вы хотите получить подробную информацию. Когда вы указываете папку, INF-файлы, которые не являются действительными пакетами драйверов, игнорируются.
Например, PS C: \> Get-WindowsDriver –Path "c: \ offline" –Driver "OEM1.inf"
1 = только ошибки
2 = ошибки и предупреждения
3 = ошибки, предупреждения и информация
4 = Вся информация, указанная ранее, плюс выходные данные отладки
Например, PS C: \> Get-WindowsDriver –Path «c: \ offline» –LogLevel «1»
-LogPath : указывает полный путь и имя файла для входа. Если не установлено, по умолчанию используется% WINDIR% \ Logs \ Dism \ dism.log.
Например, PS C: \> Get-WindowsDriver –Path «c: \ offline» –LogPath «C: \ DriversInfo»
-Path . Этот параметр можно изменить, указав полный путь к корневому каталогу автономного образа Windows, в который загружаются драйверы.
Например, чтобы получить подробную информацию о драйвере Usb.inf в смонтированном образе Windows, используйте эту команду:
PS C: \> Get-WindowsDriver –Путь "c: \ offline" –Драйвер "c: \ drivers \ Usb \ Usb.inf"
-ScratchDirectory . Этот параметр указывает временный каталог, который будет использоваться при извлечении файлов для использования во время обслуживания. Каталог должен существовать локально. Если он не указан, будет использоваться каталог Windows \% Temp% с именем подкаталога случайным образом сгенерированного шестнадцатеричного значения для каждого запуска DISM . Элементы в рабочем каталоге удаляются после каждой операции.
Например, PS C: \> Get-WindowsDriver –Online -All -ScratchDirectory «C: \ Temp»
-SystemDrive: . Это необходимый параметр для поиска файлов BootMgr , если эти файлы находятся в разделе, отличном от того, из которого вы запускаете команду.
Например, чтобы найти файлы BootMgr на диске C: , когда вы запускаете команду PowerShell на D: диск использовать этот командлет:
PS C: \> Get-WindowsDriver –Online -All -SystemDrive "C:"
Таким образом, вы можете получить подробную информацию о драйверах вашей системы в различных сценариях. Надеюсь, вы найдете руководство полезным!
Сейчас прочитано: Как получить список всех драйверов устройств с помощью командной строки.
Этот пост покажет вам, как экспортировать и резервировать драйверы устройств в Windows 10 с помощью PowerShell
Драйверы устройств являются важнейшей составляющей рабочего компьютера, так как они помогают управлять системой. Хотя, можно установить, удалить или обновить драйверы через диспетчер устройств, этот инструмент не дает нам полного списка и технических деталей об установленных драйверах в системе Windows.
Для получения полного описания установленных драйверов, можно использовать PowerShell. Get-WindowsDriver в PowerShell выводит основную информацию драйверах; как для сторонних драйверов, так и для установленных по умолчанию.
Получить список драйверов с помощью PowerShell
- Нажмите Win + Q и введите Windows PowerShell в поле поиска. В результатах поиска щелкните правой кнопкой мыши на Windows PowerShell и выберите Запуск от имени администратора.
Вот как можно изменять параметры (показаны в [ . ]), согласно вашем ожиданиям:
- 1 = только ошибки
- 2 = ошибки и предупреждения
- 3 = ошибки, предупреждения и информация
- 4 = вся информация, указанная выше, и отладочный вывод
Например, чтобы получить получает подробные сведения о USB.inf драйвере включенном в образ Windows, используйте эту команду:
Например, чтобы найти загрузчик bootmgr фалов на С:, когда вы работаете в PowerShellс диска D: , используйте этот командлет:
Таким образом, Вы можете получить подробную информацию о драйверах в вашей системе, в различных ситуациях. Надеюсь, вы найдете это руководство полезным!
Читайте также: