Wylistowanie urządzeń USB

Ktos

W jaki sposób można uzyskać listę oraz przykładowo identyfikatory urządzeń USB obecnych w naszym systemie? Należy skorzystać z klas WMI, a dokładniej Win32_USBControllerDevice. Jednak samo użycie polecenia

Get-WmiObject Win32_USBControllerDevice

zwróciłoby nieczytelną listę wielu właściwości kontrolerów. Najważniejszą do zrozumienia rzeczą jest to, że klasa ta opisuje zależności pomiędzy samym kontrolerem (Atecentent) oraz urządzeniami do niego podłączonymi (Dependent). Jednak nawet samo użycie wspomnianego polecenia z listowaniem (Format-List Antecedent,Dependent) także nie daje zadowalających rezultatów, bo nadal widoczne są straszliwie nieczytelne dla człowieka ścieżki WMI.

PS E:\> gwmi win32_usbcontrollerdevice | fl antecedent,dependent
antecedent : \\JESS\root\cimv2:Win32_USBController.DeviceID="PCI\\VEN_8086&DEV_27C8&SUBSYS_30A2103C&REV_01\\3&33FD14CA&
             0&E8"
dependent  : \\JESS\root\cimv2:Win32_PnPEntity.DeviceID="USB\\ROOT_HUB\\4&6F1F2E5&0"
(...)

Jednak posiadając ścieżki WMI można jedynie rzutując je do typu "WMI" uzyskać obiekty, z których już bardzo łatwo da się uzyskać sam interesujący nas DeviceID. Wystarczy potem jedynie wyświetlić to na przykład w formie tabeli.

Get-WmiObject Win32_USBControllerDevice | ForEach-Object { [WMI]$_.Dependent } | Format-Table Description,DeviceID

I voila! Otrzymujemy listę urządzeń USB w naszym systemie wraz z ich identyfikatorami sprzętowymi.

PS E:\> gwmi win32_usbcontrollerdevice | %{[wmi]$_.Dependent} | ft description,deviceid
description                                                 deviceid
-----------                                                 --------
USB Root Hub                                                USB\ROOT_HUB\4&6F1F2E5&0
USB Root Hub                                                USB\ROOT_HUB\4&1C613B58&0
USB Root Hub                                                USB\ROOT_HUB\4&1FB366D1&0
USB Human Interface Device                                  USB\VID_045E&PID_00B9\5&32433DF1&0&2
HID-compliant consumer control device                       HID\VID_045E&PID_00B9&COL01\6&34CFFD53&0&0000
HID-compliant mouse                                         HID\VID_045E&PID_00B9&COL02\6&34CFFD53&0&0001
USB Root Hub                                                USB\ROOT_HUB\4&3156ABA9&0
USB Root Hub                                                USB\ROOT_HUB20\4&E98E22D&0

0 komentarzy