Каков синтаксис запроса WMI / WQL для подключения всех устройств к определенному USB-концентратору?
Я могу открыть терминал PS и перечислить все устройства-концентраторы USB, например:
gwmi Win32_UsbHub | fl *
Выходные данные вернут список всех USB-концентраторов в системе. Вот пример одного такого устройства.
Device ID: USB\VID_0451&PID_DD01\6&16FAF918&1&2, PNP Device ID: USB\VID_0451&PID_DD01\6&16FAF918&1&2, Description: Generic SuperSpeed USB Hub
Availability
Caption=Generic SuperSpeed USB Hub
ClassCode
ConfigManagerErrorCode=0
ConfigManagerUserConfig=False
CreationClassName=Win32_USBHub
CurrentAlternateSettings
CurrentConfigValue
Description=Generic SuperSpeed USB Hub
DeviceID=USB\VID_0451&PID_DD01\6&16FAF918&1&2
ErrorCleared
ErrorDescription
GangSwitched
InstallDate
LastErrorCode
Name=Generic SuperSpeed USB Hub
NumberOfConfigs
NumberOfPorts
PNPDeviceID=USB\VID_0451&PID_DD01\6&16FAF918&1&2
PowerManagementCapabilities
PowerManagementSupported
ProtocolCode
Status=OK
StatusInfo
SubclassCode
SystemCreationClassName=Win32_ComputerSystem
SystemName=JMR-ENG-SARAH
USBVersion
Используя, скажем, PNPDeviceID
для этого концентратора, я хотел бы получить все подключенные устройства, если таковые имеются.
Я полностью зеленый с PS и WMI, но я подумал об использовании ASSOCIATES OF
следующим образом:
Get-WmiObject Win32_PnPEntity | select "ASSOCIATORS OF {Win32_UsbHub.DeviceID='USB\VID_0451&PID_DD01\6&16FAF918&1&2'}"
Досадно, что в перечислениях не перечисляются родительские и дочерние элементы, хотя диспетчер устройств хорошо отображает список и имеет родительский элемент.
Может быть, просто так, как я сформулировал вещи. Многие другие способы вызвали ошибку, поэтому я провел исследование и увидел этот синтаксис. Я изначально думал об использовании команды gwmi
. В любом случае из Device Manager
я знаю, что есть подключенные устройства, но приведенная выше команда выдает пустой экран.
WMI Explorer
не сильно помог.
Что бы использовать SELECT
?