2011-09-10 2 views

답변

3

WMI를 사용하여 가져올 수 있지만 WMI의 연결된 USB 장치에 대한 동적 클래스가 없습니다.
연결된 장치가있는 일부 관련 정보 USB 장치가 필요합니다.
따라서는,이 예를 고려해

Option Explicit 
Dim oWMISrv, collDvcs, collUSBDvcs, iUSBDvc , iDvc, sDvcID, sPID, sVID 

Function ReplaceX(ByVal sValue, ByVal sPattern, ByVal sNValue) 
    Dim oReg : Set oReg = New RegExp 
    oReg.Pattern = sPattern 
    ReplaceX = oReg.Replace(sValue, sNValue) 
    Set oReg = Nothing 
End Function 

Set oWMISrv = GetObject("winmgmts:\\.\root\cimv2") 
Set collDvcs = oWMISrv.ExecQuery("Select * From Win32_USBControllerDevice") 

For Each iDvc In collDvcs 
    If InStr(iDvc.Dependent, "VID_") Then ' Except keychain drives 

     sDvcID = ReplaceX(iDvc.Dependent, ".*""(.*)""", "$1") 
     sPID = ReplaceX(sDvcID, ".*PID_([^\\]*).*", "$1") 
     sVID = ReplaceX(sDvcID, ".*VID_([^&]*).*", "$1") 

     Set collUSBDvcs = oWMISrv.ExecQuery _ 
     ("Select * From Win32_PnPEntity Where DeviceID = '" & sDvcID & "'") 
     For Each iUSBDvc in collUSBDvcs 
      Wscript.Echo "Name : "& iUSBDvc.Description 
      Wscript.Echo "VID : "& sVID 
      Wscript.Echo "PID : "& sPID 
      Wscript.Echo String(50, "-") 
     Next 
     Set collUSBDvcs = Nothing 

    End If 
Next 

Set collDvcs = Nothing 
Set oWMISrv = Nothing 
+0

감사합니다,하지만 실제로는 오직 연결된 장치의 VIP/PID를 표시하는 스크립트를 찾고, 당신은 나에게 많은 도움이 그리고 당신 고맙다는 말을해야합니다 :) – Nofuzy

관련 문제