У Windows при установці або оновленні драйверів пристроїв, старі версії драйверів зберігаються в системі. Тим самим користувачеві надається можливість будь-якої миті повернути стару версію драйвера, якщо новий драйвер працює нестабільно (корисна можливість, як показав кейс з в якій довелося відкинути версію драйвера Wi-Fi). Однак Windows автоматично не чистить і не видаляє старі версії драйверів, тому з часом, розмір місця, займаного драйверами на системному диску стає досить великим. У цій статті ми поговоримо про способи видалення старих версій драйверів (дублікатів) за допомогою внутрішніх засобів системи (без використання стороннього ПЗ).
Windows зберігає всі файли в драйверів в своєму репозиторії драйверів (Driver Store), що знаходиться в каталозі % WINDIR% \ System32 \ DriverStore \ FileRepository.
У моєму випадку на домашньому ноутбуці з Windows 7 (дата установки системи майже 8 років тому), каталог FileRepository займає на диску близько 11 Гб і містить> 5000 файлів. Чимало! Зокрема в цьому каталозі зберігається більш 20 різних версій відеодрайвера Nvidia.
зміст:
- Пошук і видалення старих версій драйверів в Windows 7
- Видалення старих драйверів в Windows 10/8 за допомогою утиліти очищення диска
важливо!
- Ні в якому разі не можна видаляти файли драйверів з каталогу DriverStore вручну.
- Перед очищенням драйверів настійно рекомендується створити точку відновлення системи (
Checkpoint-Computer -Description "BeforeDriversDelete"
) Або резервну копію образу системи. - Після очищення сховища, при підключенні нових пристроїв можливо доведеться качати і встановлювати драйвера вручну.
Пошук і видалення старих версій драйверів в Windows 7
Розглянемо спосіб пошуку і видалення застарілих драйверів для Windows 7 (в Windows 8 і Windows 10 є більш прості методи видалення старих драйверів, про них написано нижче).
Отримаємо список всіх сторонніх драйверів, наявних в системі, і вивантажимо їх в текстовий файл. Для цього в командному рядку з правами адміністратора виконаємо команду:
dism / online / get-drivers / format: table> c: \ tmp \ drivers.txt
Отриманий файл імпортуємо в Excel і видаляємо всі зайві дані так, щоб залишилася тільки таблиця зі списків драйверів сховища в форматі: номер драйвера в системі (oemXXX.inf), Ім'я оригінального inf файлу, класу пристрою, виробника, дати установки і версії драйвера.
Отриману таблицю відсортуємо по стовпчику B (містить ім'я оригінального inf файл) і одну F (дата установки драйвера). Серед груп однойменних драйверів помічаємо для видалення всі версії драйверів, крім останньої. У моєму випадку видно, що більшість старих версій драйверів належить NVIDIA.
Для видалення драйвера можна використовувати команду pnputil:
pnputil.exe -d oemxxx.inf
pnputil -f -d oemxxx.inf
Для зручності сформуємо в порожньому стовпці команди для видалення кожного драйвера за допомогою формули = CONCATENATE ( "pnputil.exe -d"; A21)
Залишилося сформовані команди скопіювати і виконати в командному рядку або bat файлі.
Таким чином, я видалив з системи близько 40 старих версій драйверів, звільнивши тим самим близько 8 Гб місця (в основному за рахунок відеодрайверів NVIDEA).
Видалення старих драйверів в Windows 10/8 за допомогою утиліти очищення диска
У Windows 10 / 8.1 є більш зручний інструмент для видалення старих версій драйверів - всім знайома утиліта очищення диска cleanmgr.exe, що дозволяє в тому числі очистити диск від застарілих оновлень.
Примітка. У Windows 10 і Windows 8 Upd 1 і є можливість експортувати засобами PowerShell все сторонні драйвера, наявні в системі в окремий каталог.
- Запустіть утиліту "Очищення диска": Win + R -> cleanmgr
- Виберіть системний диск
- Натисніть на кнопку Clean up system files
- Перейдіть до кожної Device driver packages (Пакети драйверів пристроїв)Примітка. На моєму ПК розмір збережених копій драйверів дорівнює 0. На реальних систем це значення швидше за все буде відрізнятися
- натисніть ОК.
Утиліта cleanmgr видалить всі старі невикористовувані версії драйверів. Однак при цьому, потрібно розуміти, що у властивостях драйверів в диспетчері пристроїв кнопка "Відкинути драйвер" стане неактивною.