Как отмечено в другом ответе заголовок диска (т. Е. Название модели) может включать эту информацию, вы можете перемещаться по ассоциациям объектов WMI, пока не доберетесь до устройства с более определенным именем / заголовком / другимсвойство.
Сохранение devmgmt.msc
открыть с помощью View |Устройства с помощью подключения, открытого во время разработки, упростят задачу.
Ключ к навигации по графу объектов WMI - "ASSOCIATORS OF" запросов.
Итак (с использованием множества псевдонимови другие ярлыки, чтобы сделать это проще: я бы избежал этого в том, что планирую использовать повторно):
gwmi win32_DiskDrive |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity"}
получит Win32_PnpEntity
объектов для каждого диска.
Повторение этого на первом (для целей исследования) диске на другой уровень, чтобы найти, какие существуют ассоциации:
gwmi win32_DiskDrive |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity" |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)}"}} | fl __CLASS,__RELPATH
показывает сочетание классов WMI:
__CLASS : Win32_SystemDriver
__RELPATH : Win32_SystemDriver.Name="disk"
__CLASS : Win32_ComputerSystem
__RELPATH : Win32_ComputerSystem.Name="hostname"
__CLASS : Win32_IDEController
__RELPATH : Win32_IDEController.DeviceID="PCIIDE\\IDECHANNEL\\4&5ECF4F&0&2"
__CLASS : CIM_DataFile
__RELPATH : CIM_DataFile.Name="c:\\windows\\system32\\drivers\\disk.sys"
__CLASS : Win32_DiskDrive
__RELPATH : Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE0"
Последний из них - это просто возврат к дисководу, и каждое устройство связано с компьютерной системой.Но этот Win32_IDEController
объект выглядит интересно.
У него было свойство ProtocolSupported
со значениями для разных шин, но здесь все экземпляры 37 ("IDE"), и есть экземплярыдля обоих каналов контроллера и контроллеров:
PS[64bit] C:\bin\PowerShell> gwmi win32_idecontroller | ft -auto -wrap caption,description
caption description
------- -----------
ATA Channel 1 IDE Channel
ATA Channel 0 IDE Channel
ATA Channel 1 IDE Channel
Standard AHCI 1.0 Serial ATA Controller Standard AHCI 1.0 Serial ATA Controller
Standard AHCI 1.0 Serial ATA Controller Standard AHCI 1.0 Serial ATA Controller
Standard Dual Channel PCI IDE Controller Standard Dual Channel PCI IDE Controller
ATA Channel 0 IDE Channel
ATA Channel 1 IDE Channel
ATA Channel 2 IDE Channel
ATA Channel 3 IDE Channel
ATA Channel 4 IDE Channel
ATA Channel 5 IDE Channel
ATA Channel 0 IDE Channel
Так что это будет не так просто, как добраться до Win32_IDEController
.
Возвращениеи расширение Win32_IDEController
, связанное с Win32_PnpDevice
для моего диска:
gwmi win32_DiskDrive |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity" |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_IDEController"}} |
fl Caption,Description
caption : ATA Channel 2
description : IDE Channel
Так что это канал SATA, будет ли канал связан с контроллером?И упрощение: вывод foreach-object
не нуждается во внутреннем конвейере:
gwmi win32_DiskDrive |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity"} |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_IDEController"} |
%{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_IDEController"} |
fl __CLASS,__RELPATH.Caption,Description
Это ничего не находит, но немного исследует (захват __RELPATH
из одного запроса для вставки в другой, чтобы сохранитьподчиненный конвейер) указывает, что следующие ассоциации:
DiskDrive --> PnpDevice --> IDEContoller --> PnpDevice --> IDEController
должны получить результат.Избегание зацикливания (поскольку IDEController имеет два связанных объекта PnpDevice) оставлено в качестве упражнения.
После достижения истинного контроллера заголовок необходимо будет проанализировать.
Плохие новости
Повторение запроса для контроллеров в другой системе дало три экземпляра Standard Dual Channel PCI IDE Controller
, несмотря на наличие четырех контроллера (1 × IDE и 3 × SATA), это может быть связано с нетривиальным отображением из-зак тому, который работает как RAID?
И, конечно, SATA имеет по существу тот же логический (программный) интерфейс, что и IDE, чтобы заставить новое оборудование работать с программным обеспечением (то же самое относится и к PCI и PCI-Express), что означает, что ОС не 'это действительно нужно знать.