Однажды человек замечает, что системный диск тает на глазах, хотя ничего тяжёлого вроде бы не ставилось. Поиск пожирателя места приводит в неприметную системную папку с названием DriverStore, а внутри неё в подпапку FileRepository, которая раздулась до нескольких, а порой и десятков гигабайт. Это хранилище драйверов, и оно копит не только то, что работает прямо сейчас, но и все предыдущие версии каждого обновлявшегося драйвера. Чемпионы по обжорству здесь видеодрайверы, каждое обновление которых оставляет позади увесистый пакет на сотни мегабайт.
Возникает соблазн просто зайти в эту папку и удалить лишнее мышкой, как любой другой мусор. Делать так категорически нельзя, ручное вмешательство в хранилище ломает учёт драйверов и приводит к трудноуловимым сбоям. Существует правильный способ навести порядок, который убирает устаревшие версии аккуратно, силами самой системы, не нарушая её внутренней бухгалтерии. Освоив его, человек возвращает гигабайты места и держит хранилище в форме без риска что-либо сломать.
Откуда в хранилище берутся гигабайты старых драйверов
Чтобы чистить осмысленно, стоит понять механику накопления. Хранилище драйверов это защищённый склад, куда система кладёт каждый установленный пакет целиком, со всеми файлами. Когда драйвер обновляется, старая версия не выбрасывается автоматически, а остаётся лежать рядом с новой. Логика тут разумная: вдруг новая версия окажется неудачной и понадобится откат к прежней. Именно благодаря этому запасу работает кнопка отката драйвера в системе.
Беда в том, что система почти никогда не убирает старые версии сама. Обновился драйвер видеокарты десять раз за год, и в хранилище мирно лежат десять версий, из которых нужна одна, текущая, ну и от силы предыдущая на случай отката. Остальные восемь это чистый балласт, занимающий место без всякой пользы. У видеодрайверов один пакет легко весит несколько сотен мегабайт, так что десяток версий складывается в гигабайты.
Виновниками разрастания чаще всего выступают именно крупные и часто обновляемые драйверы. На первом месте видеоадаптеры, за ними тянутся драйверы чипсета, сетевых карт, иногда принтеров и сканеров со своим тяжёлым программным обвесом. Мелкие драйверы вроде мыши или клавиатуры погоды не делают. Поэтому при очистке прицеливаются прежде всего в старые версии видеодрайверов, удаление которых даёт самый заметный выигрыш по месту.
Почему нельзя просто удалить файлы из папки вручную
Первый порыв при виде раздутой папки это открыть её и стереть содержимое, как поступают с любым другим скоплением ненужных файлов. Этот путь ведёт к проблемам, и понимать причину важно, чтобы не поддаться искушению. Хранилище драйверов это не просто папка с файлами, а структура с внутренним учётом. Система ведёт реестр того, какие пакеты лежат на складе, под какими именами и в каком состоянии.
Когда файлы удаляют вручную в обход системы, учётные записи о них остаются, а самих файлов уже нет. Возникает рассогласование: система считает, что пакет на месте, обращается к нему, а там пусто. Отсюда растут трудноуловимые сбои, ошибки при установке и обновлении драйверов, проблемы с откатом. Хуже того, можно случайно снести не старую версию, а работающую, и тогда устройство останется без драйвера в самый неподходящий момент.
Сама папка к тому же защищена системой, и так просто добраться до её содержимого не выйдет без возни с правами доступа. Эта защита не каприз, а барьер именно от такого ручного вмешательства. Правильный подход состоит в том, чтобы поручить удаление самой системе через штатные команды, которые уберут и файлы, и записи о них синхронно. Тогда хранилище остаётся целостным, а место освобождается без побочных эффектов.
Перечисление пакетов и поиск кандидатов на удаление
Грамотная очистка начинается с инвентаризации, ведь прежде чем удалять, надо понять, что лежит на складе и что из этого лишнее. Знакомая утилита pnputil перечисляет все сторонние пакеты драйверов в хранилище. Чтобы не разбирать длинный вывод в окне консоли, его удобно сразу направить в текстовый файл для спокойного изучения:
pnputil /enum-drivers > C:\drivers.txt
В созданном файле каждый пакет описан строкой с присвоенным именем вида oemNN.inf, исходным именем INF, поставщиком, классом устройства, версией и датой. Это и есть карта склада. Открыв файл, ищут повторяющиеся записи: когда для одного и того же оборудования от одного поставщика числится несколько версий, всё кроме самой свежей и есть кандидаты на удаление. Поле класса помогает быстро отыскать тяжеловесов, у видеодрайверов в нём стоит обозначение видеоадаптеров.
Текущую установленную версию драйвера и её дату всегда можно сверить через диспетчер устройств, чтобы не спутать рабочий пакет со старым. Принцип отбора прост: оставляют актуальную версию каждого драйвера, при желании держат и одну предыдущую как страховку для отката, а остальные дубли помечают на удаление. Имена oemNN.inf этих лишних пакетов выписывают, они понадобятся для команд удаления. Такая подготовка превращает рискованное удаление вслепую в осмысленную операцию, где заранее известно, что и почему убирается.
Удаление лишних версий штатными командами
Когда список лишних пакетов составлен, переходят к самому удалению. Каждый ненужный пакет убирают по его имени oemNN.inf, взятому из перечисления. Базовая команда удаления выглядит так:
pnputil /delete-driver oem10.inf
Если пакет нигде не используется, он удалится сразу вместе со всеми своими файлами, и место освободится. Но часто система сообщает, что драйвер занят устройством, и простое удаление не проходит. Это защита от сноса работающего драйвера. Когда уверены, что пакет действительно лишний, применяют принудительное удаление с отвязкой от устройств, добавляя соответствующие ключи:
pnputil /delete-driver oem10.inf /uninstall /force
Ключ отвязки сначала снимает драйвер с устройств, которые его используют, а принудительный ключ убирает пакет даже при активном использовании. С этой парой обращаются вдумчиво: применять её к работающему драйверу нужного устройства значит оставить его без поддержки. Поэтому принудительное удаление приберегают для заведомо старых дублей, а не для текущих версий. Удаление выполняют по одному пакету, проверяя после каждого, что ничего не сломалось, особенно при чистке видеодрайверов, где цена ошибки выше всего.
Стоит знать, что у команд pnputil есть короткие исторические псевдонимы, доставшиеся от старых версий. Перечисление обозначалось ключом e, а удаление ключом d, и в старых инструкциях встречаются именно такие сокращённые формы. Они работают и поныне, но полные читаемые команды нагляднее и понятнее, особенно когда инструкцию потом перечитываешь сам.
Удобная альтернатива через специализированную утилиту
Перебирать длинный список пакетов и удалять их по одному вручную утомительно, особенно когда дубликатов много. Для тех, кто чистит хранилище регулярно или имеет дело с десятками устаревших версий, существует бесплатная специализированная утилита Driver Store Explorer, известная также под обозначением RAPR. Она превращает текстовый разбор в наглядную таблицу с кнопками.
Работает утилита просто и при этом безопасно, потому что под капотом обращается к тем же системным механизмам, а не лезет в папку напрямую. После запуска от имени администратора нажимают кнопку перечисления, и программа показывает все пакеты хранилища списком с версиями, датами и размерами. Самое ценное удобство это кнопка автоматического выбора старых драйверов, которая сама отмечает устаревшие дубликаты, оставляя актуальные версии нетронутыми. Человеку остаётся просмотреть выбор и подтвердить удаление.
Для упрямых пакетов, занятых устройствами, в утилите есть флажок принудительного удаления, аналог тех самых ключей командной строки. Без этого флажка используемые драйверы программа не тронет, что служит дополнительной страховкой от случайного сноса рабочего пакета. Такой инструмент экономит время и снижает риск ошибки благодаря автоматическому отбору старья, оставаясь при этом в рамках штатных системных операций. Те, кому привычнее командная строка, обходятся pnputil, а кто предпочитает наглядность, выбирают табличный интерфейс, результат в обоих случаях одинаково корректен.
Роль штатной очистки диска в борьбе с лишними драйверами
Помимо ручного и полуавтоматического разбора хранилища, у Windows есть и собственные средства гигиены, которые отчасти касаются драйверов. Встроенная очистка диска, давний инструмент уборки системного мусора, в расширенном режиме умеет удалять пакеты драйверов устройств, оставшиеся от прежних устройств и обновлений. Запускают её для системного диска и в списке категорий ищут пункт про пакеты драйверов, после чего система сама убирает то, что считает безопасным для удаления.
Этот путь привлекателен своей безопасностью, ведь система удаляет только заведомо ненужное по своим меркам, не трогая активные драйверы. Платой за осторожность становится скромный результат: автоматика консервативна и оставляет многое из того, что человек удалил бы вручную. Поэтому штатную очистку диска рассматривают как лёгкую регулярную профилактику, а не как генеральную уборку хранилища.
Сродни ей работает и обслуживание образа системы через DISM, которое среди прочего наводит порядок в накопленных компонентах. Команда анализа показывает, сколько места занято устаревшими версиями системных компонентов, а команда очистки убирает их. Драйверов из сторонних пакетов это касается косвенно, но общая гигиена системного хранилища заодно облегчает и ситуацию с местом. Сочетание лёгкой штатной автоматики для рутины и адресного удаления через pnputil или специализированную утилиту для крупных дублей даёт лучший баланс между безопасностью и эффективностью.
Когда чистить хранилище и чего ждать от результата
Очистка хранилища это не та операция, которую делают каждую неделю. Разумная периодичность зависит от того, как часто обновляются драйверы. На машине геймера, который гонится за свежими видеодрайверами и обновляет их чуть ли не ежемесячно, хранилище разрастается быстро, и заглядывать в него стоит пару раз в год. На спокойной офисной машине, где драйверы не трогают годами, чистка может вообще не понадобиться.
Хороший повод для очистки это заметная нехватка места на системном диске, когда каждый гигабайт на счету. Прежде чем чистить, полезно прикинуть, сколько вообще весит хранилище и стоит ли овчинка выделки. Размер папки смотрят через её свойства в проводнике или быстрее через PowerShell, который суммирует объём вложенных файлов одной строкой:
(Get-ChildItem C:\Windows\System32\DriverStore\FileRepository -Recurse |
Measure-Object -Property Length -Sum).Sum / 1GB
Команда выдаст размер хранилища в гигабайтах. Сопоставив это число со списком дублирующихся версий, человек обычно обнаруживает, что львиную долю занимают именно старые видеодрайверы. Их удаление способно сократить объём хранилища в разы, вернув ощутимое место без всякого ущерба для работы системы. Это самый чистый способ освободить диск, не трогая личные файлы и не удаляя нужных программ.
Не стоит, впрочем, ждать чудес там, где их нет. Если хранилище невелико и дубликатов в нём раз-два, овчинка не стоит выделки, выигрыш окажется скромным, а риск что-то задеть останется. Очистка оправдана именно при явном разрастании. И последнее правило, которое стоит запомнить навсегда: всегда оставлять текущую рабочую версию каждого драйвера, а при сомнениях и предыдущую. Цель чистки убрать балласт, а не оголить систему. Соблюдая это, человек получает поджарое хранилище, свободное место и спокойную уверенность, что ни одно устройство не осталось без своего драйвера.