Удалить все установленные OEM-драйверы из FileRepository с .CMD с помощью pnputil.exe

Удалить все установленные OEM-драйверы из FileRepository с .CMD с помощью pnputil.exe

Моя цель — создать пакетный файл для командной строки Windows, который будет проверять наличие всех драйверов устройств, загруженных Windows из WU и/или установленных вручную, а затем удалять их Windows\System32\DriverStore\FileRepositoryвсе одновременно.

Насколько я понимаю, пакетный скрипт должен запускать цикл, который будет непрерывно проверять наличие первого Oem*.infиспользования pnputil.exe -e, помещать его в переменную, запускать pnputil.exe -d variableи затем начинать заново, пока pnputil.exe -eне вернет нулевой результат, после чего завершать работу.

К сожалению, мои так называемые знания заканчиваются именно на этом, поэтому я прошу вас о помощи. Пожалуйста.

решение1

Ненавижу это говорить... но это, кажется, плохая идея. Раньше все с oemXX.inf устанавливалось пользователем, а не операционной системой. Теперь, с Windows 10... Я не устанавливал большинство этих драйверов в свою систему.

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

@echo off

for /f "delims=" %%v in ('pnputil /e ^| findstr /C:"Published name"') do call :line_process "%%v"
goto :EOF


:line_process
Set InputLine=%~1
Set InputLine=%InputLine:~28%

echo.
echo Oem line found: "%InputLine%", removing this package
echo pnputil /delete-driver %InputLine% /uninstall /force

goto :EOF

Этот сценарийв настоящее время безвредениз-за echoперед pnputilкомандой в конце. Пока это echoне будет удалено, скрипт должен быть совершенно безопасен.

Связанный контент