Как я могу получить адрес отображенного в памяти устройства для диска, начиная с диска, перечисленного

PS C:\WINDOWS\system32> gwmi Win32_DiskDrive | fl *

я могу использовать

PS C:\WINDOWS\system32> gwmi Win32_DeviceMemoryAddress | fl *

Эта команда перечисляет адреса устройств, отображаемых в памяти, однако я не вижу ничего, что перекрывало бы это с Win32_DiskDrive.

Да, я новичок в gwmi. Я знаю основы, так что, возможно, это возможно.

Как я могу получить адрес устройства, отображаемого в памяти, для определенного диска, скажем так:

PSComputerName              : JMR-ENG-SARAH
ConfigManagerErrorCode      : 0
LastErrorCode               :
NeedsCleaning               :
Status                      : OK
DeviceID                    : \\.\PHYSICALDRIVE1
StatusInfo                  :
Partitions                  : 2
BytesPerSector              : 512
ConfigManagerUserConfig     : False
DefaultBlockSize            :
Index                       : 1
InstallDate                 :
InterfaceType               : SCSI
MaxBlockSize                :
MaxMediaSize                :
MinBlockSize                :
NumberOfMediaSupported      :
SectorsPerTrack             : 63
Size                        : 512105932800
TotalCylinders              : 62260
TotalHeads                  : 255
TotalSectors                : 1000206900
TotalTracks                 : 15876300
TracksPerCylinder           : 255
__GENUS                     : 2
__CLASS                     : Win32_DiskDrive
__SUPERCLASS                : CIM_DiskDrive
__DYNASTY                   : CIM_ManagedSystemElement
__RELPATH                   : Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE1"
__PROPERTY_COUNT            : 51
__DERIVATION                : {CIM_DiskDrive, CIM_MediaAccessDevice, CIM_LogicalDevice, CIM_LogicalElement...}
__SERVER                    : JMR-ENG-SARAH
__NAMESPACE                 : root\cimv2
__PATH                      : \\JMR-ENG-SARAH\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE1"
Availability                :
Capabilities                : {3, 4}
CapabilityDescriptions      : {Random Access, Supports Writing}
Caption                     : Samsung SSD 960 PRO 512GB
CompressionMethod           :
CreationClassName           : Win32_DiskDrive
Description                 : Disk drive
ErrorCleared                :
ErrorDescription            :
ErrorMethodology            :
FirmwareRevision            : 1B6QCXP7
Manufacturer                : (Standard disk drives)
MediaLoaded                 : True
MediaType                   : Fixed hard disk media
Model                       : Samsung SSD 960 PRO 512GB
Name                        : \\.\PHYSICALDRIVE1
PNPDeviceID                 : SCSI\DISK&VEN_NVME&PROD_SAMSUNG_SSD_960\7&11BF5A6C&0&000000
PowerManagementCapabilities :
PowerManagementSupported    :
SCSIBus                     : 0
SCSILogicalUnit             : 0
SCSIPort                    : 1
SCSITargetId                : 0
SerialNumber                : 0025_385C_6150_0AD4.
Signature                   :
SystemCreationClassName     : Win32_ComputerSystem
SystemName                  : JMR-ENG-SARAH
Scope                       : System.Management.ManagementScope
Path                        : \\JMR-ENG-SARAH\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE1"
Options                     : System.Management.ObjectGetOptions
ClassPath                   : \\JMR-ENG-SARAH\root\cimv2:Win32_DiskDrive
Properties                  : {Availability, BytesPerSector, Capabilities, CapabilityDescriptions...}
SystemProperties            : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers                  : {dynamic, Locale, provider, UUID}
Site                        :
Container                   :

Вот пример вывода из Win32_DeivceMemoryAddress:

PSComputerName      : JMR-ENG-SARAH
Status              : OK
Name                : 0xF7400000-0xF76FFFFF
MemoryType          : WindowDecode
__GENUS             : 2
__CLASS             : Win32_DeviceMemoryAddress
__SUPERCLASS        : Win32_SystemMemoryResource
__DYNASTY           : CIM_ManagedSystemElement
__RELPATH           : Win32_DeviceMemoryAddress.StartingAddress="4148166656"
__PROPERTY_COUNT    : 11
__DERIVATION        : {Win32_SystemMemoryResource, CIM_MemoryMappedIO, CIM_SystemResource, CIM_LogicalElement...}
__SERVER            : JMR-ENG-SARAH
__NAMESPACE         : root\cimv2
__PATH              : \\JMR-ENG-SARAH\root\cimv2:Win32_DeviceMemoryAddress.StartingAddress="4148166656"
Caption             : 0xF7400000-0xF76FFFFF
CreationClassName   : Win32_DeviceMemoryAddress
CSCreationClassName : Win32_ComputerSystem
CSName              : JMR-ENG-SARAH
Description         : 0xF7400000-0xF76FFFFF
EndingAddress       : 4151312383
InstallDate         :
StartingAddress     : 4148166656
Scope               : System.Management.ManagementScope
Path                : \\JMR-ENG-SARAH\root\cimv2:Win32_DeviceMemoryAddress.StartingAddress="4148166656"
Options             : System.Management.ObjectGetOptions
ClassPath           : \\JMR-ENG-SARAH\root\cimv2:Win32_DeviceMemoryAddress
Properties          : {Caption, CreationClassName, CSCreationClassName, CSName...}
SystemProperties    : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers          : {dynamic, Locale, provider, UUID}
Site                :
Container           :

Я нашел этот сайт, который дает хороший список доступных тегов WMI Win32_ * и через теги CIM.

Что такое команда WMI и как получить информацию, начиная с диска Win32_DiskDrive?

ОБНОВЛЕНИЕ: Windows, на этот вопрос, не обрабатывает твердотельные накопители NVMe так же, как обычные твердотельные накопители. Таким образом, контроллер IDE и многие другие функции, перечисленные в WMI, либо неверны, либо не работают.

1 ответ1

0

Я не эксперт по WMI и не уверен, что я на правильном пути.

Но есть ключевое слово Associators Of Key на языке WQL (SQL для WMI). Associators Of позволяет вам получить все экземпляры, которые связаны с конкретным исходным экземпляром. Итак, методом «след и ошибка» я сузил его до следующих команд:

Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='\\.\PHYSICALDRIVE0'} WHERE ResultClass=Win32_PnPEntity"
Get-WmiObject -Query "ASSOCIATORS OF {Win32_PnPEntity.DeviceID='SCSI\DISK&VEN_&PROD_KINGSTON_SHSS37A\4&2B0C446D&0&040000'} WHERE ResultClass=Win32_IdeController"
Get-WmiObject -Query "ASSOCIATORS OF {Win32_IDEController.DeviceID='PCI\VEN_8086&DEV_8C03&SUBSYS_397817AA&REV_05\3&11583659&0&FA'} WHERE ResultClass=Win32_DeviceMemoryAddress"

Свойства DeviceID были жестко закодированы и найдены путем передачи вывода в fl * (для дальнейшей проверки возвращаемых объектов)


Вы также можете попробовать изучить репозиторий WMI, используя ключевое слово Associators Of , команду Get-WMIObject -List или GUI Explorer, например WMI Explorer.

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