我有这个扫描所有的查询逻辑磁盘信息 :
Write-Host "Drive information for $env:ComputerName"
Get-WmiObject -Class Win32_LogicalDisk |
Where-Object {$_.DriveType -ne 5} |
Sort-Object -Property Name |
Select-Object Name, VolumeName, VolumeSerialNumber,SerialNumber, FileSystem, Description, VolumeDirty, `
@{"Label"="DiskSize(GB)";"Expression"={"{0:N}" -f ($_.Size/1GB) -as [float]}}, `
@{"Label"="FreeSpace(GB)";"Expression"={"{0:N}" -f ($_.FreeSpace/1GB) -as [float]}}, `
@{"Label"="%Free";"Expression"={"{0:N}" -f ($_.FreeSpace/$_.Size*100) -as [float]}} |
Format-Table -AutoSize
输出是 :
![enter image description here](https://i.stack.imgur.com/mHge1.png)
然而 - 我在追寻物理磁盘信息及其分区/卷信息:
所以 - 对于物理磁盘我有这个命令:
Get-Disk
Result :
![enter image description here](https://i.stack.imgur.com/sCKcX.png)
问题 :
我想结合这两个命令。我想看看磁盘,and每个磁盘下方 - 其逻辑磁盘信息:
- 磁盘编号 1:....(信息)
>
其逻辑磁盘信息......
- 磁盘编号 2:....(信息)
>
这是逻辑磁盘信息......
- 磁盘编号 3:....(信息)
>
这是逻辑磁盘信息......
- etc...
我如何组合这两个查询?
您需要查询多个 WMI 类才能获取所需的所有信息。
-
Win32_DiskDrive为您提供有关物理磁盘的信息。
-
Win32_DiskPartition为您提供有关物理磁盘上的分区的信息。
-
Win32_LogicalDisk为您提供有关分区内文件系统的信息。
可以使用以下命令将分区映射到其磁盘Win32_DiskDriveToDiskPartition类,并且驱动器可以通过以下方式映射到它们的分区Win32_LogicalDiskToPartition class.
Get-WmiObject Win32_DiskDrive | ForEach-Object {
$disk = $_
$partitions = "ASSOCIATORS OF " +
"{Win32_DiskDrive.DeviceID='$($disk.DeviceID)'} " +
"WHERE AssocClass = Win32_DiskDriveToDiskPartition"
Get-WmiObject -Query $partitions | ForEach-Object {
$partition = $_
$drives = "ASSOCIATORS OF " +
"{Win32_DiskPartition.DeviceID='$($partition.DeviceID)'} " +
"WHERE AssocClass = Win32_LogicalDiskToPartition"
Get-WmiObject -Query $drives | ForEach-Object {
New-Object -Type PSCustomObject -Property @{
Disk = $disk.DeviceID
DiskSize = $disk.Size
DiskModel = $disk.Model
Partition = $partition.Name
RawSize = $partition.Size
DriveLetter = $_.DeviceID
VolumeName = $_.VolumeName
Size = $_.Size
FreeSpace = $_.FreeSpace
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)