В очередной раз столкнулся с том, что места на моем SSD 120Gb осталось меньше 8 гигов.
Пару месяцев назад я уже удалял старые дрова от нвидии, которая она зачем-то все хранит в папке C:\Program Files\NVIDIA Corporation\Installer2.
Гигов около 5 тогда высвободилось.
Посмотрев объемы папок на диске, нашел такое чудо:
C:\windows\system32\DriverStore\FileRepository объемом 16,6 гигов и призадумался что там такого может лежать и насколько оно мне надобно.
Стало понятно, что в этой папке винда хранит все до единого драйвера, которые она за всё время своей жизни качала, устанавливала. То, есть все-все старые версии дров, которые никому уже не нужны там спокойно лежат, как у старьевщика какого-то.
На вопросы как от этого богатства избавиться давались размытые ответы типа "удаляй на свой страх и риск", "потом диски с дровами будет винда простить, а может и не будет". Находились ссылки на пару неработающих скриптов и программ по автоматизации процесса выявления старых версий драйверов и их чистки. Упоминалась утилита pnputil из состава винды, которая управляет драйверами.
Почитав советы, я проделал следующие операции, освободив 14,5 (ЧЕТЫРНАДЦАТЬ С ПОЛОВИНОЙ) дефицитных гигов — 12% от общего объема диска (на всякий случай перед этим сделал бэкап папки на терабайтник перед выполнением очистки).
1. запустил консоль, выполнив cmd в Пуск — выполнить;
2. в консоли выполнил команду dism /online /get-drivers /format:table > c:\drivers.txt
выгрузится список драйверов сторонних производителей (не из образа винды);
3. запустил excel и открыл в нем файл drivers.txt, преобразовав его в таблицу;
4. удалил ненужные строки с текстовым описанием, ненужные столбцы с разделителями. В итоге получилась таблица со списком всех драйверов, имеющихся в той самой папке filerepository, с указанием номера драйвера типа oemXXX.inf;
5. убедился, что нет пустых столбцов между нужными мне оставшимися, иначе построчного соответствия всех столбцов не будет и названия драйверов, их версии и даты перемешаются;
6. на вкладке excel "данные" я отсортировал таблицу сперва по дате драйвера (выделил столбец с датами драйверов (на картинке Е) и нажал кнопку сортировать по возрастанию);
7. там же отсортировал таблицу по имени драйвера (на картинке столбец B с именами типа nv_dispi.inf);
8. отобрал все старые версии одноименных драйверов, выделив цветом все, кроме последних в списке одноименных. В этом месте имеет смысл подсматривать в последний столбец с версиями драйверов.
В консоли начал выполнять одну за одной команды pnputil -d oemXXX.inf подставляя вместо XXX номер удаляемого старого драйвера из первого столбца таблицы.
В итоге удалил 122 из 222 драйверов. Из них только нвидиа дрова занимали 14,2 гига, остальные еще 300 мегабайт.
Автоматизировать процесс батником мне было лень, проще 122 раза команду выполнить, стрелкой вверх в консоли вызывая предыдущую команду и меняя каждый раз одну-три цифры.
В результате остались только последние версии драйверов из тех, которые винда накачала за два с половиной года существования.