我的工作已经完成了一半,现在卡住了。
我正在尝试获取有关群集的可用存储设备的信息。 我可以获取可用存储设备列表,但无法检索这些可用存储的物理磁盘,可用空间等。
我想要这样。是否有任何命令从Cluster Disk Name中获取物理磁盘名称,或者直接获取磁盘详细信息。 对于共享磁盘,我可以检索详细信息(Get-ClusterSharedVolume),但不能检索非共享磁盘。 我想要PowerShell或WMI脚本。
答案 0 :(得分:3)
您可以从WMI获取此信息,但需要几个步骤:
$resources = Get-WmiObject -namespace root\MSCluster MSCluster_Resource -filter "Type='Physical Disk'"
$resources | foreach {
$res = $_
$disks = $res.GetRelated("MSCluster_Disk")
$disks | foreach {
$_.GetRelated("MSCluster_DiskPartition") |
select @{N="Name"; E={$res.Name}}, @{N="Status"; E={$res.State}}, Path, VolumeLabel, TotalSize, FreeSpace
}
} | ft
这将为您提供如下输出:
Name Status Path VolumeLabel TotalSize FreeSpace
---- ------ ---- ----------- --------- ---------
Cluster Disk 2 2 K: New Volume 5220 5163
SQL - FAS3070 SiteB 2 S: MC_SQL 5597 5455
SM Test 2 M: SM Test 1024 992
DTC - FAS3070B 2 F: MC_WITNESS 5346 5289
Cluster Disk Witness 2 E: New Volume 5322 5267
Cluster Disk 1 2 G: MC_DTC 5088 5035
Cluster Disk 3 2 T: SQL 5119 4999
如果您不关心资源名称/状态,可以跳过这些步骤直接跳转到分区(并且运行得更快):
gwmi -namespace root\MSCluster MSCluster_DiskPartition | ft Path, VolumeLabel, TotalSize, FreeSpace
编辑:请注意,大小以MB为单位,状态为“2”表示磁盘在线。
答案 1 :(得分:1)
你可以像这样使用wmi:
Get-WMIObject Win32_LogicalDisk -filter "DriveType=3" | Select DeviceID, FreeSpace
如果您希望远程执行,请输入computername参数
HTH, 马特
PS。要获得更易读的报告,您可以尝试这样做:
Get-WMIObject Win32_LogicalDisk -filter "DriveType=3" |
Select DeviceID, @{Name = "Free Space (%)" ; Expression= {[int] ($_.FreeSpace / $_.Size* 100)}},@{Name = "Free Space (GB)"; Expression = {[int]($_.Freespace / 1GB)}}, @{Name = "Size (GB)"; Expression = {[int]($_.Freespace / 1GB)}}