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

リモートで実行したい場合は、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)}}
于 2011-07-11T20:52:36.490 に答える