Как удалить все драйвера системы. Как удалить установленные драйвера в ос windows различными способами

В один прекрасный (или печальный, кому как) день мне надоело, что у меня периодически заканчивается место на ноутбуке. Да, я в курсе, что жёсткие диски сейчас дешевы, но это для меня не выход, потому что:

  • У меня SSD, а он всё-таки подороже будет, чем обычные HDD (объём моего текущего SSD - 120 гигов)
  • Ноутбук рабочий, соответственно данные на нём тоже, должны быть шифрованы, всё такое, поэтому самопальный и не утверждённое работодателем носитель втыкать не стоит
  • Я жадный:)
Этот топик, пожалуй, предназначен и может быть полезен тем людям, кого волнует свободное место на системном диске, обычные средства очистки уже испробованы, а хочется выжать ещё чуть-чуть (как в старом анекдоте - первая попавшаяся в гугле ссылка на анекдот, если сайт плохой - пардон).

В общем, я иногда чищу место на диске. Стандартные процедуры - очистка %TEMP%, очистка диска (стирает всякие там отчёты об ошибках, прикопанные системой на всякий пожарный, всякие memory dump"ы упавших процессов и прочее), снос ненужных более программ.
Однако, как я выяснил, есть папки, которые не чистит никто (от слова совсем). Ну в смысле из стандартных средств. И сейчас я хочу поговорить о папке %WINDIR%\System32\DriverStore.

Если у Вас эта папка занимает много-много места, а читать весь пост неохота - пожалуйте в самый его конец, там есть ссылки на github, откуда можно взять готовый результат моих изысканий и попробовать выжать (или отжать) немного места у винды.

Введение в проблему - что это за папка, зачем она нужна, кто виноват, что делать

Если порыться в интернетах , можно найти, что это то место, куда система про запас складывает вообще все драйвера, которые ей когда-либо попались по дороге. Да-да, и те, что были установлены для Вашей видеокарты три года назад, тоже лежат там, несмотря на то, что Вы их себе обновляли много-много раз.

Приведу немного теории с того самого MSDN:

Starting with Windows Vista, the driver store is a trusted collection of inbox and third-party driver packages. The operating system maintains this collection in a secure location on the local hard disk. Only the driver packages in the driver store can be installed for a device.

When a driver package is copied to the driver store, all of its files are copied. This includes the INF file and all files that are referenced by the INF file. All files that are in the driver package are considered critical to the device installation. The INF file must reference all of the required files for device installation so that they are present in the driver store. If the INF file references a file that is not included in the driver package, the driver package is not copied to the store.

The process of copying a driver package to the driver store is called staging. A driver package must be staged to the driver store before the package can be used to install any devices. As a result, driver staging and device installation are separate operations.

A driver package is staged to the driver store by being verified and validated

В моём вольном переводе получится что-то вроде:

В Windows Vista и позднее, хранилище драйверов используется как сборник доверенных предустановленных и сторонних драйверов. Операционная система поддерживает этот сборник в безопасном месте на локальном диске. Только те драйвера, которые лежат в хранилище, могут быть установлены.

Когда драйвер копируется в хранилище, туда попадают все его файлы, включая.INF файл и все файлы, на которые этот.INF ссылается. Все файлы, составляющие драйвер, считаются необходимыми для работы устройства. INF файл должен ссылаться на все файлы, необходимые для работы устройства, для того, чтобы они все попали в хранилище. Если.INF файл ссылается на файл, не входящий в драйвер, этот драйвер не копируется в хранилище.

Процесс копирования драйвера в хранилище называется staging (не стал пытаться выдумать термин, оставил английское слово - прим.пер. ). Для того, чтобы драйвер мог быть использован для какого-либо устройства, он должен пройти процесс staging, таким образом, установка устройства и staging драйвера - отдельные операции.

Перед попаданием в хранилище драйвер проверяется на действительность подписи и целостность файлов.

Неужели всё так плохо, и никто не поможет?

Выглядит страшновато для влезания своими грязными руками, не правда ли? Однако тут есть небольшая (и не слишком удобная) соломинка от Microsoft, называется она pnputil.exe и умеет:
  • Перечислять драйвера, находящиеся в staging (но не входящие в стандартную поставку Вашей Windows, т.е. не интегрированные в установочный дистрибутив)
  • Добавлять драйвер в хранилище
  • Удалять драйвер из хранилища
Причём при удалении она проверяет, не используется ли удаляемый драйвер на данный момент для какого-нибудь подключенного устройства, и без опции /f (т.е. /force - заставить насильно) удалять такие драйвера отказывается.
Этой утилитой я и воспользовался.

Тут надо упомянуть, что я не первый такой умный, кто думал над этой проблемой, на codeplex есть проект по GUI приложению DriverStore Explorer , но он фактически является только графической обёрткой вокруг pnputil и никак не анализирует драйвера, предоставляя полную свободу своему пользователю.
Мне же, во-первых, искать вручную устаревшие версии драйверов было не очень охота, а во-вторых хотелось понять, что я выиграю от удаления того или иного драйвера (в смысле места на диске). Так что тут был синдром в полный рост.
Поэтому я взял в руки Python и понеслось.

Ура, строим свой велосипед!

Методом пристального всматривания я обнаружил, что для того, чтобы найти наиболее свежую версию, достаточно данных от pnputil, а вот для определения размера - нет, потому что pnputil про драйвер говорит примерно следующее - кто сделал, когда, версия и имя INF файла. Какая из кучи папок в DriverStore относится к этому драйверу - он не говорит.
Вглядевшись ещё внимательнее в папочку %WINDIR%\Inf, я обнаружил там те самые.INF файлы (по именам), которые перечисляет pnputil, а заглянув в папки в DriverStore, обнаружил там… те же самые.INF файлы, но с другими именами - каждый в папке от своего драйвера.
Наверняка есть способ и попроще, но я пошёл в лоб - построил отображение от имени.INF файла в выдаче pnputil на папку в DriverStore, в которой лежит такой же по содержимому.INF файл (с другим именем). И взял размер этой папки за размер драйвера.

Теперь дело оставалось за малым - обернуть всё это в скрипты для удобного исполнения.
По дороге, правда, лежала подстава в виде UAC - pnputil работал только с администраторскими правами, а значит, надо было повышать привилегии из Питона. Беглое гугление дало несколько рецептов, которые говорили что-то вроде «можно сделать так, но вывода (и уж тем более ввода) не будет, как будете отлаживаться - без понятия», и меня это не устроило, так что я чуть-чуть доработал примеры.
Правда, моя реализация на данный момент неидеальна - она упадёт при попытке перенаправить stdout или stderr, потому что внутри я использую виндовое понятие консоли, а для перенаправленных потоков это не работает…
Но я пока закрыл на это глаза, потому что для починки надо городить чуть более сложный механизм, чем вызов FreeConsole/AttachConsole, т.е. заниматься перенаправлением всех потоков вручную.

Пробуем написанное на практике

А теперь, собственно, самый смак - результаты всей этой портянки текста. Можно брать, использовать на свой страх и риск, можно пробовать наносить добро и причинять пользу исходникам (MIT лицензия, да). Можно даже сказать мне спасибо в комментариях, если кому-то эти скрипты помогут:)

Если качаете бинарную версию (интерпретатор зашит внутри) - берите ту, что соответствует разрядности операционки (32-битная версия на 64-битной ОС не найдет pnputil и работать, соответственно, не будет… если очень надо - пишите, можно попробовать это обойти).
Если берёте скриптовую версию - аналогично, запускать надо интерпретатором с разрядностью операционки.

Сам лично я это проверял на двух компьютерах с Windows 7, в теории должно работать на Vista и 8. На WinXP должно быть (вроде) бесполезно.
Скрипт проанализирует хранилище драйверов, постарается найти устаревшие версии драйверов (т.е. такие, для которых одновременно в staging находится более новая версия) и предложит их удалить, выдав оценку занимаемого драйверами места (и оценку выигрыша, разумеется, тоже).

Результат на моем ноутбуке
Лично мне удалось отжать порядка 6 гигабайт (!), в основном за счет удаления старых версий драйверов видеокарточки NVidia.
На другом ноутбуке всё оказалось не так радужно, удалось очистить всего 200 (по-моему) мегабайт, но там система жила существенно меньше моей и просто не успела накопить много драйверов.

Оба ноутбука с тех пор живут полной жизнью, в смысле никаких проблем от очистки я не заметил.

Если Вы досюда дочитали - спасибо за внимание!

Послесловие

Ожидаемо выяснилось, что скрипты по очистке работают не всегда, основная проблема - если Windows не англоязычный (как-то я не подумал, что и совсем служебные утилиты будут локализованы). Это я буду чинить. Основная масса проблем должна быть починена, см.

Из системы возникает довольно редко. Например, такая необходимость может возникнуть в случае замены комплектующих или для установки новой версии драйверов с нуля. В данном материале мы рассмотрим несколько способов удаления старых драйверов.

Способ № 1. Удаление драйвера через Панель управления.

Некоторые драйверы можно удалить через Панель управления. Для этого откройте Панель управления и перейдите в раздел «Удаление программ».

После этого перед вами откроется список установленных программ. В этом списке могут отображаться и некоторые драйверы. Например, здесь, можно найти AMD. Для того чтобы удалить найденный драйвер, выделите его в списке и нажмите на кнопку «Изменить» (в некоторых случаях это кнопка может называться «Удалить»).

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

Обратите внимание, что данный способ работает, далеко не для всех драйверов. Поэтому если нужного вам драйвера нет в списке установленных программ, то вам следует воспользоваться другим способом удаления.

Способ № 2. Удаление старых драйверов через Диспетчер устройств.

Второй способ удаления драйверов, это удаление через Диспетчер устройств. Для этого нужно , найти там устройство, драйвер которого вы хотите удалить, и открыть его свойства.

После этого перед вами откроется окно со свойствами данного устройства.

Здесь нужно перейти на вкладку «Драйверы» и нажать на кнопку «Удалить».

Способ № 3. Удаление старых драйверов с помощью программы Driver Sweeper.

Если предыдущие способы удаления драйверов вам не подходят, то вы можете воспользоваться программой Driver Sweeper. Данная программа позволяет выполнять полное удаление драйверов из системы. При этом удаляются не только сами драйверы, но и все следы их работы. Ключи в , временные файлы и т.д.

После запуска программу лучше сразу включить русский язык. Для этого нажимаем на «Language», выбираем «Russian» и нажимаем на кнопку «Apply».

После этого переходим в раздел «Анализ и очистка». Здесь будет отображаться список драйверов, которые обнаружила программа Driver Sweeper. Для того чтобы удалить драйвер, вы должны установить напротив него галочку и нажать на кнопку «Очистка».

Также вы можете выделить драйвер и нажать на кнопку «Анализ». В этом случае, программа покажет список файлов, которые имеют отношение к выбранному драйверу.

В этом списке можно выбрать, какие файлы вы хотите удалять, а какие нет. После чего нажать на кнопку «Очистка» для того чтобы удалить выбранные файлы.

Прежде всего стоит сказать, для чего нужно удалять драйверы неиспользуемых устройств. Если ранее Вы пользовались каким-либо оборудованием на своем компьютере (USB, PCI и др.), даже после прекращения его эксплуатации система все еще хранит драйверы в своих каталогах. Конечно, они не загружается в память, однако… Может случиться так, что по какой-то причине возникает конфликт нового оборудования со старым драйвером . На поиск решения может уйти уйма времени. Проблема в основном касается PCI видео, аудио и сетевых устройств.

Кроме того, драйверы постоянно обновляют свои версии, а старые никуда не исчезают, вызывая снижение производительности компьютера и конфликты с другим, более новым оборудованием. Во всех этих случаях целесообразным является отсечь все лишнее — удалить драйверы тех устройств, которые устарели либо вовсе не используются.

Удаляем неиспользуемые драйверы в диспетчере устройств

Итак, кликните по значку Компьютер на рабочем столе правой кнопкой и вызовите свойства. В открывшемся окне слева выберите Диспетчер устройств . В окне диспетчера нам необходимо включить отображение скрытых устройств: Вид -> Показать скрытые устройства:

Ниже приведен результат данного действия. Как видите, после включения отображения скрытых устройств в диспетчере появилось много оборудования, которое Вы использовали ранее, либо не использовали вовсе.

Итак, теперь выделите ненужное Вам устройство, кликните правой кнопкой и выберите «Удалить». Согласитесь на удаление в окне диалога.

После этого драйвер будет удален из системы.

Предупреждения

Как известно, всегда есть свои «НО». Самый основной совет — не удаляйте драйвер, если не уверены, что это устройство. Ведь бывают драйверы протоколов, некоторых системных служб, виртуальных устройств. Они активируются непосредственно при их использовании системой. БУДЬТЕ КРАЙНЕ ОСТОРОЖНЫМИ с подобными драйверами. По возможности, не используйте ветки «Системные устройства», «Драйверы несамонастраиваемых устройств» .

Если статья Вам помогла, пожалуйста, лайкните ее и обращайте внимание на сайты партнеров.

Здравствуйте, друзья. Сегодня Вы узнаете как удалить драйвер из своего многострадального компьютера. Полностью удалять будем только лишние, ненужные Вам драйверы. Это может понадобиться в том случае, если Вы избавились от какого-то оборудования или собираетесь установить самую новую версию «дров» начисто.

Дело в том, что существует много программ чистящих компьютер и некоторые мы с Вами уже рассматривали в подробностях (такие как CCleaner , FreeSpacer …). Они отличные работники и справляются со своими задачами, но они не предусмотрены для удаления драйверов. В них просто не заложена эта функция.

Вы сменили видеокарту или ещё чего, установили новенькие драйверы с диска, а что со старыми? А вот лежат эти старые, лишние, не используемые драйвера на диванчике в глубинах системы, курят Ваши сигареты, попивают чаёк с Вашим же печеньем и чувствуют, подлецы, себя в полной безопасности.

Так мало того, что лежат мёртвым грузом, а ещё и крадут ресурсы компьютера. Ведь при подключении любого оборудования происходит поиск по всей базе драйверов, без разбора — старый ли, молодой. Задействуется целая служба, просматривается реестр…

Так давайте нагрянем в гости к этим редискам вместе с бесплатной, безопасной программой Driver Swee per . Она предназначена именно для этой, благородной цели.

Узнайте как удалить драйвер — подробно, досконально, пошагово и в картинках…

Для начала определимся, что такое драйвер. В двух словах, это мини-программа помогающая системе взаимодействовать, управлять оборудованием, будь то мышь, клавиатура, монитор, принтер или видеокарта.



Драйвера желательно , что и делает система по умолчанию, ускоряя тем самым и облегчая жизнь себе и пользователям. Но при этом обновлении, автоматическом или ручном, неработающие драйверы не всегда удаляются системой. Вот ими и будем заниматься.

Как удалить драйвер — скачать Driver Sweeper

Честно Вам признаюсь — переживал, запуская программу первый раз, а вдруг неправильно или криво удалит драйвер и я не смогу потом подключиться к принтеру, например или звук пропадёт. Но мои волнения были напрасны. Driver Sweeper деликатно выкинул указанные ему мной, старые и лишние драйверы, не тронув при этом актуальные и задействованные.

Проверял на очень редко используемом оборудовании. Сканер подключил, который стоит по году без дела, мыши с других своих компьютеров, монитор… всё летает! Красота! Правда забыл засечь, сколько места освободится на винчестере, но не в этом суть. Не очень много, ведь драйвер — это мини-программа. Главное — избавился от балласта.

И всё-таки, использовать программу Вы будете на свой страх и риск! (читайте комментарии к этой статье). Ещё некоторые антивирусы возбуждаются от Driver Sweeper, но проверял её лично — до сих пор с компьютером и системой всё в порядке.

Давайте уже приступим к установке и очистке…

Теперь, если не установили галочку, создав ярлык на рабочем столе, заходим в меню «Пуск» , находим нашу программу и запускаем её…

Нас встречает неувязочка — программа на английском языке. Лёгким движением руки переключаем интерфейс на родной и могучий, русский язык…

…не забыв при этом нажать внизу…

Вот она, награда за убитые несколько тысяч нервных клеток и сожжённые килокалории при трёх кликах.

Теперь можете подстроить программу чуть-чуть под себя. Даже внешний вид изменить, заглянув в «Разное» и «Тема» …

Теперь, наконец-то давим «Анализ и очистка » …

Перед нами список основных производителей оборудования. Установите галки напротив того производителя, чей драйвер хотите полностью удалить. Кстати, я был сильно удивлён, когда Driver Sweeper нашёл и удалил драйвера видеокарт Nvidia при моей интегрированной Intel. Откуда они взялись — ума не приложу.

Теперь «Анализ» справа, внизу и следом «Очистка» …

В Windows при установке или обновлении драйверов устройств, старые версии драйверов сохраняются в системе. Тем самым пользователю предоставляется возможность в любой момент вернуть старую версию драйвера, если новый драйвер работает нестабильно (полезная возможность, как показал кейс с в которой пришлось ). Однако Windows автоматически не чистит и не удаляет старые версии драйверов, поэтому со временем, размер места, занимаемого драйверами на системном диске становится довольно большим. В этой статье мы поговорим о способах удаления старых версий драйверов (дубликатов) с помощью внутренних средств системы (без использования стороннего ПО).

Windows хранит все файлы в драйверов в своем репозитории драйверов (), находящемся в каталоге %WINDIR%\System32\DriverStore\FileRepository.

В моем случае на домашнем ноутбуке с Windows 7 (дата установки системы почти 8 лет назад), каталог FileRepository занимает на диске около 11 Гб и содержит >5000 файлов. Немало! В частности в этом каталоге хранится более 20 различных версий видеодрайвера Nvidia.

Важно!

  1. Ни в коем случае нельзя удалять файлы драйверов из каталога DriverStore вручную.
  2. Перед очисткой драйверов настоятельно рекомендуется создать точку восстановления системы (Checkpoint-Computer -Description «BeforeDriversDelete») или .
  3. После очистки хранилища, при подключении новых устройств возможно придется качать и устанавливать драйвера вручную.

Поиск и удаление старых версий драйверов в 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

Примечание . В некоторых случаях удалить драйвер можно только с ключом –f : 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 и есть возможность , имеющиеся в системе в отдельный каталог.

Утилита cleanmgr удалит все старые неиспользуемые версии драйверов. Однако при этом, нужно понимать, что в свойствах драйверов в диспетчере устройств кнопка «Откатить драйвер» станет неактивной.