Automatize a desinstalação e reinstalação do driver no Windows 7

1

Eu preciso automatizar a desinstalação e reinstalar um driver no Windows 7. O processo para fazer isso manualmente é:

  1. Iniciar
  2. Clique com o botão direito do mouse em Computador > Gerenciar
  3. Gerenciador de dispositivos > Adaptadores de Rede
  4. Clique com o botão direito em Intel® R de banda dupla Wireless-AC 7260 > Desinstalar
  5. NÃO EXCLUIR, deixe a opção de exclusão desmarcada, apenas clique em OK para desinstalá-la.
  6. Clique com o botão direito em Adaptadores de rede > Verificar se há alterações de hardware

Eu preciso executar essas etapas regularmente, então gostaria de encontrar uma maneira de automatizá-las.

Eu encontrei essas duas ferramentas de linha de comando que parecem relevantes, mas nenhuma delas parece fazer exatamente o que eu quero.

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

Esses comandos têm uma saída que sugere que eles fizeram o que devem fazer, mas não tem o mesmo efeito de desinstalar e reinstalar o driver.

pnputil

pnputil -e

Isso gera uma lista. Ele não parece incluir o mesmo nome legível em humanos usado no Gerenciador de Dispositivos (o que o wmic acima fez), mas vejo esse dispositivo listado, o que acho que é:

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

Eu tenho alguns problemas com isso, no entanto. Quando entro no Gerenciador de dispositivos da GUI e clico com o botão direito do mouse > Propriedades > Separador do Motorista > Detalhes do driver, lista os seguintes arquivos:

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

Nenhum dos quais é o nome que pnputil chamou. Além disso, guia Detalhes > Infs incluídos chama netvwifibus.inf - também não algo que pnputil chamou.

Outro problema com pnputil é que não parece ter um comando de desinstalação. Tudo o que tem é pnputil -d , o que ele diz é para excluir o pacote (o que é um pacote? Como isso difere de um driver? Eles são mesmo?) Minhas instruções manuais são explicitamente não excluir o driver, apenas para desinstalar isto. Estou hesitante em tentar usar essa opção de exclusão, já que não vejo uma maneira fácil de desfazer isso se ela acabar sendo a coisa errada.

resumo

wmic pode desativar e ativar drivers, mas eu quero desinstalá-los e reinstalá-los.

pnputil pode adicionar e excluir pacotes. A palavra delete me assusta, pois parece não oferecer nenhuma maneira de fazer backup ou reverter facilmente, então eu não tentei. Além disso, o que é um pacote de qualquer maneira? Qual é o seu relacionamento com um motorista ... é a mesma coisa?

    
por ArtOfWarfare 23.07.2015 / 16:35

1 resposta

3

PnP, Pacotes e drivers

Seu dispositivo é um dispositivo PnP (Plug and Play) - Significa que o Windows escolhe automaticamente o driver a ser usado para este dispositivo. Um lugar onde parece para os drivers é um armazenamento de drivers em um computador local. O armazenamento do driver contém pacotes de drivers. Vários pacotes para um dispositivo podem estar presentes e um pacote pode ter drivers para vários dispositivos. Quando um dispositivo não tem nenhum driver atribuído, o gerenciador PnP encontra drivers compatíveis, os classifica , escolhe o melhor e instala este driver.

Quando você faz o download e instala o driver manualmente, sua cópia é armazenada no Driver Store como um pacote.

Quando você desinstala manualmente o driver e seleciona a opção de exclusão no Gerenciador de dispositivos - ele também remove o pacote correspondente do Armazenamento do driver.

wmic, pnputil

Para automatizar as etapas exatas que você mencionou, wmic disable e pnputil -d não são boas para você. pnputil apenas adiciona / remove pacotes, o Gerenciador PnP escolhe o que instalar.

Você deseja desinstalar o driver (mas não excluir o pacote e forçar uma nova varredura PnP).

solução proposta

Eu tentaria usar o Console de dispositivos do Windows (Devcon.exe) . O seu comando remove deve remover o dispositivo da árvore de dispositivos e deixar o pacote sozinho - assim como seus passos 4 e 5. Usando rescan você pode acionar o passo 6. Você pode encontrar devcon no Kit de driver do Windows .

Você também pode escrever um programa usando Funções de instalação de dispositivos públicos

    
por 03.05.2017 / 18:10