Я хотел бы получить некоторые данные из системного устройства в диспетчере устройств Windows, либо через Windows SDK (предпочтительно) или PowerShell.Я прилагаю несколько фотографий для справки.
1 ответ
Как упоминалось в этом ответе, вы можете использовать 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