Тарифы Услуги Сим-карты

Удаление ненужных драйверов. Удаление старых версий драйверов из хранилища Windows

– Игорь (Администратор)

Периодически может потребоваться удаление драйвера из системы. И причин много, начиная от ошибок в системе и заканчивая тем, что вы просто прибираетесь за некоторыми программами, которые после себя оставили в системе кучу лишнего мусора. Поэтому в данной статье я расскажу как удалить драйвер в Windows 7 . Кстати, сразу хотел бы предупредить, чтобы не пытались удалять "просто неизвестные" драйвера. Такие необдуманные действия могут привести к достаточно серьезным последствиям вплоть до необходимости в переустановке Windows.

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

Теперь, когда я вас напугал и рассказал о паре нюансов, можно переходить к самому способу:

1. Метод является самым надежным, так как предоставляется самой Windows 7. И вот, что нужно сделать. Откройте меню "Пуск" и наберите в строке поиска фразу "Диспетчер устройств" и нажмите на соответствующий пункт. После этого откроется окно, где нужно в левой части найти нужное вам устройство. Щелкните на нем правой кнопкой мыши и выберите пункт "Свойства".

2. Откроется окно с настройками и информацией о драйвере. Вам нужно переместиться на вкладку "Драйвер", после чего нажать на кнопку "Удалить". Система может спросить у вас подтверждения действия. Затем запустится удаление драйвера. В некоторых случаях может потребоваться перезагрузка компьютера, так что советую закрыть все остальные программы и сохранить данные. Windows в плане принудительной перезагрузки достаточно беспардонен и порой закрывает программы без сохранения.

3. Драйвер удален с компьютера

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

Теперь, вы знаете как удалить драйвер в Windows 7, а так же знаете некоторые нюансы этого процесса. Надеюсь моя статья помогла вам решить возникшие проблемы.

В среде Windows в такой процедуре, как удаление драйверов, обычно надобности нет. Система в большинстве случаев уживается с драйверами меняемой периферии. Да и при смене внутренней начинки компьютера последние версии Windows 8.1 и 10 , как правило, спокойно себе запускаются, без ухода в BSOD , что бывает с Windows 7 (и версиями постарше) при замене процессора или материнки. Новые версии системы обычно сами сбрасывают привязку к железу и автоматом устанавливают всё, что им нужно.


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

1. Удаление драйверов-приложений

Драйверы – это служебные файлы форматов «.sys» , «.dll» , «.vxd» , «.drv» , хранящиеся в специальных каталогах Windows. Большая часть из них устанавливается с помощью файлов «.inf» и не имеет своего интерфейса для пользовательского управления. Но есть сторонние драйверы, которые поставляются вместе со своими фирменными приложениями. Такие существуют для видео-, аудиокарт, принтеров и прочей периферии. И устанавливаются они в систему по типу сторонних программ. Избавиться от таких драйверов путём обычной деинсталляции удаётся не всегда, их скрытые компоненты могут оставаться в системе. И в лучшем случае мёртвым грузом занимать место на диске, в худшем – конфликтовать с новыми драйверами . Помогут в таком случае специальные программы-чистильщики.

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

Во-вторых, программа отображает не только основной каталог со сторонним софтом, у неё также есть два отдельных каталога со скрытыми и системными компонентами. Там могут прятаться оставшиеся компоненты сторонних драйверов, а умеет их принудительно удалять.

Специально для корректного удаления видеодрайверов предназначена программа . Она узкопрофильная, предназначается только для очистки Windows от драйверов видеокарт Nvidia , AMD и Intel вместе со всеми установленными их фирменными приложениями. Рекомендуется к использованию перед заменой видеокарты, чтобы при следующем запуске Windows можно было без лишних проблем внедрить новый видеодрайвер. В её окне справа необходимо выбрать нужную марку видеокарты — Nvidia , AMD и Intel . А слева указать нужное действие – удалить видеодрайвер , а затем либо ничего не делать, либо перезагрузить систему, либо её выключить.

2. Удаление обычных драйверов

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

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

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

Что же касается внутренней начинки компьютера, то здесь не всё так просто. Чтобы исправить ситуацию с конфликтом, можно провести отвязку драйверов комплектующих с помощью штатной утилиты , предназначенной для развёртывания Windows на корпоративных и OEM -устройствах.

Она возвращает систему в состояние первого запуска, и вся начинка компьютера определяется по-новому.

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

Непосредственно сами драйверы (их служебные файлы) ни в первом, ни во втором случае никуда не исчезают. Разве что файлы установки «.inf» отдельных из них можно удалить в целях расчистки места на диске С . Делается это с помощью штатного средства очистки диска или специальных сторонних программ.

3. Удаление драйверов из системного каталога Windows

Полностью удалить обычные драйверы из среды Windows – с уничтожением их служебных файлов и файлов установки — можно только варварским способом с вмешательством в системный каталог Windows. Проводить такие мероприятия желательно, если ну уж совсем не остаётся ничего другого. И то, с обязательным созданием бэкапа драйверов, а также бэкапа всей системы, если её содержимое представляет ценность. Или же когда мы говорим об экспериментаторских целях с использованием виртуальных Windows, систем на других дисках и т.п. Не рекомендуется проводить нижеследующие действия без должного уровня подготовки на основных компьютерах.

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

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

Далее закрываем окошко и возвращаемся к свойствам устройства. Теперь открываем соседнюю вкладку . В выпадающем перечне указываем и фиксируем где-то его значение. Это установочный файл «.inf» драйвера.

Теперь отключаем устройство в диспетчере.

Идём в системный каталог Windows, где хранится его служебный файл «.sys» , «.dll» или другой. И удаляем.

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

В нашем случае эксперимент проводился с сетевой картой, потому искать в Интернете нет смысла. Сразу выбираем локальный поиск драйверов.

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

Восстановление драйвера стало возможным, поскольку мы в системном каталоге удалили его служебные файлы, но мы пока что не трогали файл установки «.inf» . Чтобы сделать невозможным впредь установку драйвера, идём по пути:

C:\Windows\INF

И удаляем в этой папке ранее зафиксированный файл «.inf» .

Но система не захочет его удалять, запросит доступ с правами TrustInstaller . А, получив такие права, придумает новую причину отказа. Более того, система не захочет удалять не только файл «.inf» , но и служебные файлы некоторых драйверов. В описанном выше случае удаление файла «.sys» произошло по причине выбора устройства, которое система не считает жизненно важным – сетевой карты . Драйверы жизненно важных комплектующих она не позволит удалить. В таких случаях необходимо загрузиться с любого Live -диска с файловым менеджером на борту. И удалить все зафиксированные внутри системы служебные файлы и при необходимости файл установки «.inf» .

После удаления установочного файла «.inf» система без Интернета или помощи стороннего ПО не сможет установить драйвер устройства.

С инсталлятора, скачанного на официальном сайте;
Поискать в Интернете или в Центре обновления;

Прибегнуть к помощи специализированного стороннего софта;
Извлечь из ранее сделанных бэкапов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Интересный факт: На компьютере драйвера даже одного устройства хранятся в нескольких папках. Убедиться в этом довольно легко, необходимо на неиспользуемое устройство нажать правой кнопкой мыши и выбрать пункт «Свойства». Далее зайти на вкладку «Драйвер» и выбрать пункт «Сведения». В графе «Файлы драйверов» будут отображаться десятки файлов, которые являются программным обеспечением всего одного устройства.

Что делать, если скрытые устройства не появляются в «Диспетчере устройств»

Как мы отметили выше, бывают ситуации, что в «Диспетчере устройств» не отображаются скрытые устройства даже после установки галочки (или данного пункта в меню вовсе нет). В такой ситуации необходимо проделать следующее, чтобы они появились:

  1. Запустите строку «Выполнить» комбинацией клавиш Windows+R и пропишите в ней следующую команду:
control.exe /name Microsoft.System
devmgr_show_nonpresent_devices

Чтобы она была активна по умолчанию, в графе «Значение переменной» следует поставить цифру 1, после чего нажать «ОК».

Новая переменная среда будет создана, и в списке «Диспетчера устройств» появятся скрытые варианты, драйвера для которых можно удалить по инструкции, описанной выше.

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

  • У меня 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 не англоязычный (как-то я не подумал, что и совсем служебные утилиты будут локализованы). Это я буду чинить. Основная масса проблем должна быть починена, см.