При установке или обновлении драйверов устройств в Windows, старые версии драйверов сохраняются в системе. Это позволяет пользователю откатиться к предыдущей версии драйвера, если новый драйвер работает нестабильно. Однако Windows автоматически не удаляет старые и неиспользуемые версии драйверов, поэтому со временем размер места, занимаемого драйверами на системном диске становится довольно большим. В этой статье мы рассмотрим несколько способов удаления старых версий драйверов (дубликатов) в Windows с помощью встроенных и сторонних средств.
Windows хранит все файлы в драйверов в своем репозитории драйверов ( Driver Store ), находящемся в каталоге %WINDIR%System32DriverStoreFileRepository.
Размер каталога с драйверами можно получить с помощью PowerShell ( "{0:N2} GB" -f ((gci –force $Env:windirSystem32DriverStoreFileRepository –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
) или графических утилит. В моем случае на домашнем ноутбуке с Windows каталог FileRepository занимает на диске около 11 Гб и содержит >5000 файлов. В частности, в этом каталоге хранится более 20 различных версий видеодрайвера Nvidia.
Checkpoint-Computer -Description "BeforeDriversDelete"
) или резервную копию образа системы ; Рассмотрим способ поиска и удаления старых версий драйверов в Windows. Вы можете вывести полный список установленных драйверов с помощью PowerShell и WMI (CIM) класса Win32_PnPSignedDriver:
Get-WmiObject Win32_PnPSignedDriver| select DeviceName, DeviceClass,Manufacturer, DriverVersion, DriverDate,InfName|Out-GridView
В нашем примере мы получили таблицу Out-GridView со списком драйверов в репозитории Windows в формате: имя устройства, класс устройства, производитель, версия драйвера, дата установки, имя inf файла драйвера ( oemXXX.inf ).
Вы можете получить список сторонних драйверов, установленных в Windows с помощью командлета:
Get-WindowsDriver –Online| select Driver, ClassName, BootCritical, ProviderName, Date, Version, OriginalFileName|Out-GridView
Вы можете удалить любой из установленный драйверов с помощью утилиты pnputil :
pnputil.exe /remove-device oemxxx.inf
pnputil /remove-device oemxxx.inf /force
Найдите в таблице драйвера, для которых присутствуют несколько версий и удалите все старые версии драйвера (кроме самой последней) с помощью pnputil.
BootCritical=True
) Также вы можете выгрузить список драйверов в текстовый файл и импортировать его в Excel:
dism /online /get-drivers /format:table > c:tmpdrivers.txt
Удалите все лишние данные в таблице и оставьте только столбцы: файл драйвера в системе ( oemXXX.inf ), имя оригинального inf файла, класс устройства, производителя, даты установки и версии драйвера. Отсортируйте таблицу по столбцам B (содержит имя оригинального inf файл) и столбцу F (дата установки драйвера). Среди групп одноименных драйверов отметьте для удаления все версии драйверов, кроме последней. В моем случае видно, что большинство старых версий драйверов принадлежит NVIDIA.
Для удобства сформируйте в пустом столбце команду для удаления каждого драйвера с помощью формулы =CONCATENATE("pnputil.exe -d ";A21)
В моем случае я удалил в Windows порядка 40 старых версий драйверов и освободил около 8 Гб места (в основном за счет драйверов видеокарты NVIDIA).
Для автоматического поиска драйверов устройств, для которых установлено несколько версий драйверов (дубликаты) можно использовать готовый PowerShell скрипт FindDriverDuplicates.ps1 ( https://github.com/winadm/posh/blob/master/Desktop/FindDriverDuplicates.ps1 ).
Скрипт выведет список старых версий драйверов, которые можно удалить, т.к. для этих устройств установлены более новые версии. Строки с автоматическим удалением найденных драйверов по-умолчанию закомментированы в скрипте.
В современных версиях Windows 10 и 11 вы можете использовать утилиту очистки диска cleanmgr.exe
для удаления старых версий драйверов (эта же утилита позволяет удалить устаревшие обновления).
Для просмотра списка установленных драйверов в Windows можно использовать небольшую бесплатную утилиту DevManView от NirSoft ( https://www.nirsoft.net/utils/device_manager_view.html )
Утилита DevManView предоставляет собой альтернативу стандартному диспетчеру устройств Windows и позволяет представить список драйверов, установленных на компьютере, в виде плоского списка (таблицы).
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…