1

Мне нужно автоматизировать удаление и переустановить драйвер на Windows 7. Процесс, чтобы сделать это вручную:

  1. Начните
  2. Щелкните правой кнопкой мыши Компьютер> Управление
  3. Диспетчер устройств> Сетевые адаптеры
  4. Щелкните правой кнопкой мыши Intel(R) Dual Band Wireless-AC 7260> Удалить
  5. НЕ УДАЛЯТЬ, оставьте опцию удаления не отмеченной, просто нажмите ОК, чтобы удалить ее.
  6. Щелкните правой кнопкой мыши Сетевые адаптеры> Поиск изменений оборудования.

Мне нужно регулярно выполнять эти шаги, поэтому я хотел бы найти способ их автоматизации.

Я нашел эти два инструмента командной строки, которые кажутся актуальными, но ни один из них, кажется, не делает именно то, что я хочу.

WMIC

# Outputs a list. I can parse this to find the index of the device.
wmic nic get name, index

wmic path win32_networkadapter where index=<from above> call disable
wmic path win32_networkadapter where index=<from above> call enable

Эти команды имеют вывод, который предполагает, что они сделали все, что должны, но это не имеет тот же эффект, что и удаление и переустановка драйвера.

PNPUTIL

pnputil -e

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

Published name :            oem186.inf
Driver package provider :   Intel
Class :                     Network adapters
Driver date and version :   08/01/2013 16.1.3.1
Signer name :               Microsoft Windows Hardware Compatibility Publisher

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

C:\windows\system32\DRIVERS\Netwfw02.dat
C:\windows\system32\DRIVERS\NETwsw02.sys
C:\windows\system32\drivers\vwifibus.sys

Ни одно из которых не является именем, которое pnputil назвал. Далее, вкладка Details> Included Infs называет это netvwifibus.inf - тоже не то, что pnputil называл это.

Другая проблема, связанная с pnputil заключается в том, что у него нет команды удаления. Все, что у него есть, это pnputil -d , который, по его словам, предназначен для удаления пакета (что такое пакет? Чем это отличается от драйвера? Они такие же?) Мои инструкции по эксплуатации явно не удалять драйвер, а только удалить его. Я не решаюсь даже попробовать использовать эту опцию удаления, так как не вижу простого способа отменить ее, если она окажется неправильной.

резюме

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

pnputil может добавлять и удалять пакеты. Слово «удаление» пугает меня, поскольку кажется, что оно не дает возможности легко выполнить резервное копирование или откат, поэтому я не пробовал его. Кроме того, что пакет в любом случае? Каковы его отношения с водителем ... это одно и то же?

1 ответ1

3

PnP, пакеты и драйверы

Ваше устройство является устройством PnP (Plug and Play). Это означает, что Windows автоматически выбирает драйвер для этого устройства. Одним из мест, где он ищет драйверы, является Магазин драйверов на локальном компьютере. Магазин драйверов содержит пакеты драйверов. Может присутствовать несколько пакетов для одного устройства, и один пакет может иметь драйверы для нескольких устройств. Когда устройству не назначен драйвер, PnP-менеджер находит совместимые драйверы, ранжирует их, выбирает лучший и устанавливает этот драйвер.

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

Когда вы вручную удаляете драйвер и выбираете опцию удаления в диспетчере устройств - он также удаляет соответствующий пакет из хранилища драйверов.

wmic, pnputil

Чтобы автоматизировать точные шаги, которые вы упомянули, и wmic disable и pnputil -d не подходят. pnputil просто добавляет / удаляет пакеты, PnP Manager выбирает, что устанавливать.

Вы хотите удалить драйвер (но не удалить его пакет и принудительно выполнить повторное сканирование PnP).

предложенное решение

Я бы попробовал использовать Windows Device Console (Devcon.exe). Его команда remove должна удалить устройство из дерева устройств и оставить пакет в покое - так же, как ваши шаги 4 и 5. С помощью rescan вы можете запустить шаг 6. Вы можете найти devcon в Windows Driver Kit.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .