无法检索群集的可用存储空间的物理大小

时间:2011-07-04 11:08:17

标签: powershell wmi cluster-computing hyper-v

我的工作已经完成了一半,现在卡住了。

我正在尝试获取有关群集的可用存储设备的信息。 我可以获取可用存储设备列表,但无法检索这些可用存储的物理磁盘,可用空间等。

我想要这样。是否有任何命令从Cluster Disk Name中获取物理磁盘名称,或者直接获取磁盘详细信息。 对于共享磁盘,我可以检索详细信息(Get-ClusterSharedVolume),但不能检索非共享磁盘。 我想要PowerShell或WMI脚本。 enter image description here

2 个答案:

答案 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)}}