Я хотел бы получить некоторые данные из системного устройства в диспетчере устройств Windows, либо через Windows SDK (предпочтительно) или PowerShell.Я прилагаю несколько фотографий для справки.

1 ответ1

3

Как упоминалось в этом ответе, вы можете использовать Get-CimInstance win32_PnPSignedDriver для получения большей информации. Для вашего примера вам нужно будет выбрать описание, содержащее интересующий вас текст.

Например (с другим чипсетом)

PS C:\> Get-CimInstance win32_PnPSignedDriver | where description -like '*3b34*'


Caption                 :
Description             : Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34
InstallDate             :
Name                    :
Status                  :
CreationClassName       :
Started                 :
StartMode               :
SystemCreationClassName :
SystemName              :
ClassGuid               : {36fc9e60-c465-11cf-8056-444553540000}
CompatID                : PCI\VEN_8086&DEV_3B34&REV_06
DeviceClass             : USB
DeviceID                : PCI\VEN_8086&DEV_3B34&SUBSYS_216317AA&REV_06\3&B1BFB68&0&E8
DeviceName              : Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34
DevLoader               :
DriverDate              : 21/06/2006 02:00:00
DriverName              :
DriverProviderName      : Microsoft
DriverVersion           : 10.0.17763.1
FriendlyName            :
HardWareID              : PCI\VEN_8086&DEV_3B34&SUBSYS_216317AA&REV_06
InfName                 : usbport.inf
IsSigned                : True
Location                : PCI bus 0, device 29, function 0
Manufacturer            : Intel
PDO                     : \Device\NTPNP_PCI0015
Signer                  : Microsoft Windows
PSComputerName          :

Если вам нужно только одно свойство "Location", вы можете указать это в предложении select.

PS C:\> Get-CimInstance win32_PnPSignedDriver | where description -like '*3b34*' | select Location

location
--------
PCI bus 0, device 29, function 0

Подробную информацию о вкладке ресурсов можно найти с помощью Win32_PNPAllocatedResource поиск первых 40 символов DeviceID в Dependent . Например, взять тот же пример:

PS C:\> $Text='3b34'
PS C:\> $DeviceID=[string[]](Get-CimInstance Win32_PnPEntity | where Description -like "*$Text*" | select DeviceID)
PS C:\> $Partial=$DeviceID.substring(11,39)
PS C:\> Get-CimInstance Win32_PNPAllocatedResource | where Dependent -like "*$Partial*"


Antecedent                                               Dependent                                                                PSComputerN
                                                                                                                                  ame
----------                                               ---------                                                                -----------
Win32_DeviceMemoryAddress (StartingAddress = 4067591168) Win32_PnPEntity (DeviceID = "PCI\VEN_8086&DEV_3B34&SUBSYS_216317AA&R...)
Win32_IRQResource (IRQNumber = 19)                       Win32_PnPEntity (DeviceID = "PCI\VEN_8086&DEV_3B34&SUBSYS_216317AA&R...)

IRQ и начало диапазона памяти показаны (в десятичном виде). Если вы хотите, вы можете углубиться в Win32_DeviceMemoryAddress чтобы получить диапазон (в шестнадцатеричном формате ), используя StartingAddress .

PS C:\> get-ciminstance Win32_DeviceMemoryAddress | where StartingAddress -eq '4067591168' | Select Name

Name
----
0xF2728400-0xF27287FF

Диспетчер устройств - Ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .