Removendo hardware não presente com o Devcon?

2

Estou automatizando a remoção de uma impressora USB de máquinas com o Windows XP SP3. Para fazer isso, estou usando o utilitário Devcon da Microsoft.

Executando o comando:

devcon findall *hp*

Retorna:

USBPRINT\HEWLETT-PACKARDHP_LASERJET_PROFESSIONAL_P1606DN&8885729&0&USB001: HP
LaserJet Professional P1606dn
1 matching device(s) found.

Executando o comando:

devcon remove *USBPRINT*

Retorna:

No devices removed.

Eu tentei várias combinações do ID de hardware e curingas sem sorte. Conectar o dispositivo ao computador e executar o comando remove mencionado acima remove o hardware.

A questão vem de mim usando o devcon canalizado para encontrar para determinar se o dispositivo está conectado para que possa ser configurado automaticamente. Se eu não conseguir removê-lo, ele será detectado pelo meu script, mesmo que não esteja conectado.

Eu testei isso com várias impressoras USB e um mouse USB, todos exibem o mesmo comportamento, o que me leva a acreditar que isso é um comportamento normal para a Devcon.

Existe uma solução alternativa? Como faço para remover entradas de hardware que não estão mais conectadas?

    
por Kalamane 27.01.2012 / 16:32

3 respostas

6

Devcon funciona. Você só precisa ter certeza de que está direcionando a versão correta do devcon para o seu sistema operacional.

Veja este link link .

Para instalar a versão devcon correta para seu sistema operacional:

  • Instale o kit de driver do Windows
  • Ir para Iniciar - > Programas - > Kits de desenvolvimento - > WDK XXXX - > Construir ambientes - > Windows [Target] - > Windows [Target] Free Build Environment, substituindo [Target] pela versão apropriada do Windows que você está desenvolvendo.
  • Vá para a pasta src \ setup \ devcon no diretório de instalação do WDK e execute: %código%

Você pode remover o dispositivo com o seguinte comando:

devcon remove "@PCI\VEN_1000&DEV_0060&SUBSYS_1F0C1028&REV_04&10333E29&0&0030"

Anote as aspas e o símbolo @ , pois eles são necessários para permitir a remoção de dispositivos ocultos.

    
por 20.08.2015 / 13:56
0

devon pode e removerá hardware não presente como GregL mencionou.

A string deve ser formatada corretamente.

O arquivo em lote a seguir corresponderá a todos os dispositivos com base na string de entrada e os removerá:

for /f %%i in ('devcon findall *%1*') do (devcon remove "@%%i")
    
por 24.03.2016 / 18:58
0

Devcon não pode remover o hardware que não está atualmente conectado. Este é o comportamento pretendido. Eu deveria ter lido melhor a documentação.

O comando findall procura TODO o hardware, conectado ou não. Eu deveria estar usando o comando find , que só procura por hardware conectado no momento.

    
por 27.01.2012 / 21:44