2015-10-06 44 views
2

我有一個非常複雜的社區排隊: 我必須用數百臺運行Win XP Pro SP3的PC來管理一個實驗室。有時候學生將電腦和鍵盤從計算機上斷開,所以在每節課結束後我都要檢查每一臺機器,並檢查它們是否被監控,並且這會嚴重影響我的工作。所以我在VBScript中編寫了一個腳本來檢查機器,並將有關配置的信息放入數據庫中,以幫助我判斷機器上是否有錯誤。現在,我還想檢查一下,如果PS2鍵盤和/或PS2鼠標已連接或不連接,那麼我可以在新班級開始之前立即恢復它們,而不需要通過機器進行嘗試。我怎樣才能做到這一點? WMI?怎麼樣?謝謝。有沒有使用VBscript檢查PS2鍵盤和/或PS2鼠標是否連接到運行Windows XP或更高版本的計算機的方法?

回答

1

WMI應該可能提供此信息。例子見this related question。你可能會needWin32_KeyboardWin32_PointingDevice,也許Win32_PnPEntity如果那些do not report disconnecting(我不能測試PS/2硬件)。

所有這些都應該轉換成VBScript,也許使用微軟的documentationWMI from VBScript。一開始:

On Error Resume Next 
For Each strComputer In Array("localhost") 
    WScript.Echo "Computer: " & strComputer 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Keyboard", "WQL", &h30) 
    For Each objItem In colItems 
    WScript.Echo objItem.Availability, objItem.Caption, _ 
     objItem.ConfigManagerErrorCode, objItem.ConfigManagerUserConfig, _ 
     objItem.Description, objItem.DeviceID, _ 
     objItem.ErrorCleared, objItem.ErrorDescription, _ 
     objItem.IsLocked, _ 
     objItem.LastErrorCode, _ 
     objItem.Layout, _ 
     objItem.Name, _ 
     objItem.PNPDeviceID, _ 
     objItem.Status, objItem.StatusInfo, _ 
     objItem.SystemCreationClassName, objItem.SystemName 
    Next 
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PointingDevice", "WQL", &h30) 
    For Each objItem In colItems 
    WScript.Echo objItem.Availability, objItem.Caption, _ 
     objItem.ConfigManagerErrorCode, objItem.ConfigManagerUserConfig, _ 
     objItem.Description, objItem.DeviceID, _ 
     objItem.DeviceInterface, _ 
     objItem.ErrorCleared, objItem.ErrorDescription, _ 
     objItem.HardwareType, _ 
     objItem.IsLocked, _ 
     objItem.LastErrorCode, _ 
     objItem.Name, _ 
     objItem.PNPDeviceID, _ 
     objItem.PointingType, _ 
     objItem.Status, objItem.StatusInfo, _ 
     objItem.Synch, _ 
     objItem.SystemCreationClassName, objItem.SystemName 
    Next 
Next 
+0

很多很多謝謝米歇爾!它看起來很完美!我嘗試了一臺機器:一次插入鍵盤和鼠標,我有兩個msgbox(一個是鍵盤數據,另一個是鼠標數據);有一次只是鍵盤,我只有鍵盤數據的msgbox;有一次只需鼠標插入,我只有鼠標數據的msgbox。再次感謝! – user3697206

相關問題