我一半的方式来与我的工作,现在被卡住。
我试图获取有关集群可用的存储设备的信息。 我能够获取可用的存储设备,但无法获取物理磁盘,可用空间,这些可用的存储等的列表。
我想是这样的。 是否有任何命令从群集磁盘名称获取物理磁盘名称或者我直接可以得到磁盘的详细信息。 对于共享磁盘,我能够检索细节( GET-ClusterSharedVolume ),而不是一个非共享磁盘。 我想的PowerShell或WMI脚本这样做。
我一半的方式来与我的工作,现在被卡住。
我试图获取有关集群可用的存储设备的信息。 我能够获取可用的存储设备,但无法获取物理磁盘,可用空间,这些可用的存储等的列表。
我想是这样的。 是否有任何命令从群集磁盘名称获取物理磁盘名称或者我直接可以得到磁盘的详细信息。 对于共享磁盘,我能够检索细节( GET-ClusterSharedVolume ),而不是一个非共享磁盘。 我想的PowerShell或WMI脚本这样做。
你可以从这个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”的状态意味着磁盘处于联机状态。
您可以使用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)}}