Quando eu consultar Win32_PnPEntity, meus dispositivos PS / 2 sempre aparecem como [Not Present, Not Working, No Driver]… Por quê?

3

Estou usando uma consulta WMI como parte de um script de diagnóstico geral, e eu consultei o seguinte:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_PnPEntity",,48) 
For Each objItem in colItems 
Wscript.Echo "-----------------------------------"
Wscript.Echo "Win32_PnPEntity instance"
Wscript.Echo "-----------------------------------"
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "ClassGuid: " & objItem.ClassGuid
Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "Manufacturer: " & objItem.Manufacturer
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
Wscript.Echo "Service: " & objItem.Service
Wscript.Echo "Status: " & objItem.Status
Next

Sempre que eu executo isso em uma estação de trabalho com portas PS / 2, vejo que um teclado e um mouse PS / 2 (não presente) estão mostrando o código de erro para [Not Present, Not Working, No Driver Installed]. / p>

Existe alguma maneira de diferenciar isso de outros dispositivos que realmente falharam? Eu gostaria de ainda mostrar Erros PS / 2, se possível, mas não vejo o que eu poderia usar para separá-los das entradas reais.

    
por Yablargo 23.01.2013 / 23:22

1 resposta

2

A classe Win32_PnPEntity do WMI representa as propriedades de um Dispositivo Plug and Play.

A interface PS / 2 data de 1987, antes de existir algo como plug and play.

Dito isso, observe a definição de classe vinculada acima. Os membros Availability e ConfigManagerErrorCode dividem-no em códigos de status bastante granulares. Talvez eles possam ser de alguma utilidade para você na diferenciação de seus dispositivos PS / 2. (O que você pode estar fazendo já.) Você também pode tentar fazer referência cruzada a esses dados com Win32_PointingDevice e Win32_Keyboard. Torna seu trabalho mais difícil, mas é provavelmente o melhor que você obterá do WMI.

    
por 24.01.2013 / 00:53

Tags