首先你要查看Win32_LogicalDiskToPartition。
PS C:\> Get-WMIObject Win32_LogicalDiskToPartition | Select-Object Antecedent, Dependent | Write
这在我的系统上提供了
Antecedent Dependent
---------- ---------
\\DESKTOP-JJASNFC\root\cimv2:Win32_DiskPartition.DeviceID="Disk #1, Partition #0" \\DESKTOP-JJASNFC\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
\\DESKTOP-JJASNFC\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1" \\DESKTOP-JJASNFC\root\cimv2:Win32_LogicalDisk.DeviceID="D:"
查询Win32_LogicalDisk 以获取有关驱动器号的信息。
Get-WMIObject Win32_LogicalDisk | Select DeviceID, Path | Write
对我有好处
DeviceID Path
-------- ----
C: \\DESKTOP-JJASNFC\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
D: \\DESKTOP-JJASNFC\root\cimv2:Win32_LogicalDisk.DeviceID="D:"
F: \\DESKTOP-JJASNFC\root\cimv2:Win32_LogicalDisk.DeviceID="F:"
这里Path 属性连接到我们之前看到的Dependent 属性。
在Win32_DiskPartition我们可以找到设备ID
Get-WMIObject Win32_DiskPartition | Select DiskIndex, MedPath | Write
再次,对我来说
DiskIndex Path
--------- ----
1 \\DESKTOP-JJASNFC\root\cimv2:Win32_DiskPartition.DeviceID="Disk #1, Partition #0"
0 \\DESKTOP-JJASNFC\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
0 \\DESKTOP-JJASNFC\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
现在,对您来说最有趣的部分是我们查询MSFT_Physicaldisk。
Get-WmiObject MSFT_Physicaldisk -Namespace root\Microsoft\Windows\Storage | Select DeviceId, MediaType | Write
...
DeviceId MediaType
-------- ---------
1 4
0 4
这里,MediaType 是关键。值 4 表示 SSD,3 表示 HDD。 DeviceId 对应于DiskIndex。
因此,如果您将这 4 个“表”连接在一起,您就可以实现您想要的。我的 Powershell-Fu 不够好。
回顾一下:连接就像
MSFT_Physicaldisk.MediaType,MSFT_Physicaldisk.DeviceID
Win32_DiskPartition.DiskIndex, *Win32_DiskPartition.Path
Win32_LogicalDiskToPartition.Dependent,Win32_LogicalDiskToPartition.Antecedent
Win32_LogicalDisk.Path、Win32_LogicalDisk.DeviceID