1

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

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

我想要这样。是否有任何命令可以从集群磁盘名称中获取物理磁盘名称,或者我可以直接获取磁盘详细信息。对于共享磁盘,我可以检索详细信息(Get-ClusterSharedVolume),但不能检索非共享磁盘。我想要 powershell 或 WMI 脚本来执行此操作。 在此处输入图像描述

4

2 回答 2

4

您可以从 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”状态表示磁盘在线。

于 2011-07-12T13:22:16.253 回答
1

你可以像这样使用 wmi:

Get-WMIObject Win32_LogicalDisk -filter "DriveType=3" | Select DeviceID, FreeSpace

如果您希望远程执行,请输入计算机名参数

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)}}
于 2011-07-11T20:52:36.490 回答