Невозможно получить физический размер доступного хранилища для кластера.

Я на полпути вниз с моей работой и теперь застрял.

Я пытаюсь получить информацию о доступных устройствах хранения для кластера. Я могу получить список доступных устройств хранения, но не могу извлечь физический диск, доступное свободное пространство и т. Д. Из этого доступного хранилища.

Я хочу так. Есть ли какая-либо команда для получения имени физического диска из имени диска кластера, или я могу напрямую получить информацию о диске. Для общего диска я могу получить подробную информацию ( Get-ClusterSharedVolume), но не для общего диска. Я хочу PowerShell или WMI скрипт для этого.

2 ответа

Решение

Вы можете получить эту информацию из 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

Изменить: Обратите внимание, что размер указан в МБ, а состояние "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)}}
Другие вопросы по тегам