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

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

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

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

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

Примечание. Все вышеописанные действия необходимо делать с правами Администратора. Так же стоит отметить, что в данном деле главное не поудалять лишнего) Иначе, система может просто не загрузиться. Это особенно относиться к драйверам и устройствам контроллеров жестких дисков.

Включение отображения неиспользуемого оборудования Windows через графический интерфейс

  1. Нажимаем клавиши Windows + Break/Pause . (Либо в "Панели управления" выбираем пункт "Система ")
  2. В открывшемся окне "Система " выбираем пункт "Дополнительные свойства системы".
  3. В открывшемся окне "Свойства Системы " на вкладке "Дополнительно" в самом низу нажмите кнопку "Переменные среды" .
  4. В открывшемся окне "Переменные среды " в поле "Системные переменные" для создания новой переменной необходимо нажать кнопку "Создать… "
  5. В дополнительном появившемся окне "Новая системная переменная " укажите имя и значение переменной .
  6. Ок-Ок-Ок.)))

Включение отображения неиспользуемого оборудования Windows через командную строку

  1. пуск -> выполнить (Либо нажать клавиши Windows + R) -> cmd -> OK
  2. Ввести Set devmgr_show_nonpresent_devices=1 , Нажать Enter

Примечание. В данном случае после перезагрузки эта опция отключится. В отличие от установки переменной через графический интерфейс.

Как удалить драйвера неиспользуемого оборудования?

Опцию отображения скрытых устройств включили, давайте теперь посмотрим сами устройства и удалим ненужное. Для этого открываем Диспетчер устройств Пуск -> Выполнить -> Devmgmt.msc -> OK. Чтобы устройства отобразились в "Диспетчере устройств", необходимо в меню "Вид " выбрать пункт "Показать скрытые устройства ". Теперь, если открыть любой пункт дерева (в котором предположительно имеются неиспользуемые устройства), то они будут иметь затененные значки, либо значки с желтым восклицательным знаком. Выделив устройство правой кнопкой мыши можно выбрать пункт "Удалить ". После подтверждения кнопкой Ок может потребоваться перезагрузка.

Оригинальная статья от Microsoft: http://support.microsoft.com/kb/315539/ru

С Уважением, Mc.Sim !

Здравствуйте дорогие посетители! Решил написать небольшую, но полезную заметку, и рассказать как удалить драйвер. Компьютер вещь непредсказуемая, поэтому может пригодиться что угодно, даже удаление драйвера определенного устройства. Для чего? Та разное бывает, возможно драйвер установился криво, или не совсем тот который нужно. А установить новый поверх старого не всегда получается, поэтому можно удалить драйвер устройства и установить новый.

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

Удалять драйвер мы будем через диспетчер устройств, мне кажется, что это единственный правильный и надежный способ. Но все же, стоит понимать, что это опасно, возле кнопки “Удалить” даже написано “Удаление драйверов (для опытных)”, думаю что это написали не просто так. Ну ничего страшного, мы же опытные:).

Сначала нам нужно запустить диспетчер задач. Для этого, нажмите правой кнопкой на значок “Мой компьютер” и выберите “Свойства” . Откроется окно, в котором слева нажмите “Диспетчер устройств” .

В диспетчере устройств выберите устройство, драйвер которого хотите удалить, нажмите на него правой кнопкой мыши выберите “Свойства” .

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

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

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

Исправить такую ситуацию, удалив остатки драйверов совсем не просто, особенно это не просто сделать если устанавливались неофициальные, или очень “древние” версии специализированного ПО. Кроме того, при смене видеокарты, например, с NVIDIA на ATI, тоже могут возникнуть проблемы несовместимости, даже не просто смогут, а возникнут в 90% случаях. Заменив графический видеоадаптер, нужно обязательно устанавливать для него соответствующие драйвера. Если не выполнить удаление драйверов, то они будут засорять Windows, возможно конфликтовать с ней и притормаживать ее работу. Решить данную проблему поможет бесплатная программа для удаления драйверов Driver Sweeper. Именно о не, и о том, как с помощью нее удалить драйвера Windows мы сегодня у будем говорить.

Полное удаление драйверов с помощью Driver Sweeper

Программа Driver Sweeper распространяется разработчиком совершенно бесплатно. Скачать программу для удаления драйверов вы можете с нашего сайта по ссылке выше, или же с официального сайта утилиты, адрес которого указан в таблице. При установке утилиты обратите внимание, что вместе с ней предлагается скачать и установить еще одну программу, она платная, поэтому если она вам не нужна, то откажитесь от ее загрузки. Делается это так: В мастере установки программы, внимательно просматривайте каждый шаг и в нужном снимите галочку с чекбокса “Я принимаю Лицензионной соглашение с конечным пользователем и Политика конфиденциальности и хочу установить Mobogenie бесплатно”.

После того как вы скачаете и установите программу, можно приступить к удалению драйверов из системы. По умолчанию Driver Sweeper имеет английский язык интерфейса, чтобы было удобнее работать с ней, его нужно изменить на русский. Чтобы сделать это кликните в разделе “Options” меню “Navigation” по пункту “Language” и затем в выпадающем списке выберите русский язык (см. рисунок ниже). Нажмите кнопку “Apply”, что локализовать интерфейс программы.

Чтобы обнаружить все остатки ранее устанавливаемых в Windows драйверов, щелкните по ссылке “Анализ и очистка”, отметьте галочками чекбоксы драйверов по их разработчиками. Рекомендуем отметить все чекбоксы. Нажмите кнопку “Анализ”.

Утилита отыщет все спец. программы и их следы, и выведет их в виде списка в следующем окне. Отметьте те, которые вам не нужны. Если программа нашла много мусора, и вы решили удалить все, то для удобства выделения кликните по кнопке со звездочкой, расположенной в самом низу списка и выберите пункт “All”. Чтобы начать процедуру удаления драйверов в Window, кликните по кнопке “Очистка”.

Программа задаст вам контрольный вопрос – “Вы уверены, что хотите продолжить”, кликните по “Ok”, в открывшемся диалоговом окне, чтобы подтвердить свои намерения. После того, как утилита завершит процесс удаления драйверов из системы, потребуется перезагрузка компьютера.

Если после деинсталляции драйверов и перезагрузки компьютера Windows будет работать со сбоями, то вы сможете восстановить все удаленные файлы. Делается это просто. Снова запустите программу Driver Sweeper и в меню “Навигация” кликните по пункту “Восстановление” в разделе “Задачи”. В списке удаленных файлов, который отобразит утилита, выберите нужные и щелкните по “Восстановить”.

Все на этом. Удачи!

Похожие материалы

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

Теперь ближе к сути. Нижеописанный способ поможет Вам увидеть и удалить все драйвера, которые находятся в системе и не используются. Какие это дрова? Да всякие. Это и те, которые установились когда Вы "втыкнули" какую-то чужую флешку единожды. Это и дрова, которые установились вместе с какой-нибудь программой для обработки видео или звука, а так же антивирусы и т.п. программное обеспечение. Впоследствии Вы уже удалили эти программы, а хвосты в виде драйверов могут остаться. Так же этот хлам может остаться после неправильной переустановки "винды".

Сейчас мы будем их удалять стандартным способом систему Windows.

Открываем Свойства системы . Это можно сделать тремя способами:

1) Win + Break/Pause

2) ПКМ по значку Моего компьютера и в контекстном меню выбираем Свойства

3) Пуск -> Панель управления -> Система

В Windows 7 и 8 нужно ещё слева выбрать Дополнительные параметры системы


В этом окошке жмём кнопку Создать в поле "Системные переменные"


Теперь в этом новом маленьком окошке вводим Имя переменной как devmgr_show_nonpresent_devices , а Значение будет 1


Затем жмем везде ОК до окна Свойств системы.

Остаётся только открыть этот самый Диспетчер.
Либо в этом самом окне Свойств системы выбрать вкладку Оборудование :


Либо вызвать и ввести в неё Devmgmt.msc или start devmgmt.msc


Всё. Теперь можете раскрывать списки и увидите, что там появились пунктики полупрозрачные или с восклицательным знаком. Это то, что нам нужно:


жмём по ним ПКМ и удаляем:

Так же все эти действия можно упростить (до открытия Диспетчера), введя в командную строку Set devmgr_show_nonpresent_devices=1
Тогда можно открыть диспетчер, поставить отображение скрытых и удалять.
Здесь следует учитывать то, что после перезагрузки эта опция пропадёт.

На этом всё. И в качестве заключения хотелось бы дать несколько примечаний:

1) Если не получается - попробуйте делать под Админом

2) Если не отображается - нажмите на кнопку "Обновить конфигурацию оборудования" или перезапустите Диспетчер

3) Смотрите внимательно что удаляете. Если что-то потом не запустится - я не виноват.

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

Создано по мотивам