Get Cluster Shared Volume (CSV) free space with PowerShell

With the failover cluster manager it’s hard to summarize the free space for each CSV.
Here is a sample script to determine the free space for the Cluster Shared Volumes in each Hyper-V cluster.

 

 

Comments ( 3 )

  1. Avatar
    Jim PecoraMarch 6, 2019 14 // Reply

    Found an issue with your code. $csvs += $c should be included in the foreach loop above it. Otherwise you're only getting data from the last cluster in the array. Thanks for sharing your code. Jim

    • Avatar
      AdminApril 11, 2019 15 // Reply

      Thanks for sharing. I Will edit my code.

  2. Avatar
    MikeMay 27, 2019 13 // Reply

    I corrected and added the code, in my opinion it turned out more beautiful ----------------------------- $objs = @() $Clusters = ("clu210","clu230","clu200") #Get CSVs foreach cluster foreach($Clu in $Clusters){ $c = Get-ClusterSharedVolume -Cluster $Clu #Get CSV Info foreach ( $csv in $c ) { $csvinfos = $csv | select -Property Name -ExpandProperty SharedVolumeInfo foreach ( $csvinfo in $csvinfos ) { $obj = New-Object PSObject -Property @{ Clustername = $Clu Name = $csv.Name Owner = $csv.OwnerNode Path = $csvinfo.FriendlyVolumeName Size = $csvinfo.Partition.Size FreeSpace = $csvinfo.Partition.FreeSpace UsedSpace = $csvinfo.Partition.UsedSpace PercentFree = $csvinfo.Partition.PercentFree } $objs += $obj } } } $objs |Sort-Object Clustername | ft -auto Clustername,Name, Owner, Path,@{ Label = "Size(GB)" ; Expression = { "{0:N2}" -f ($_.Size/1024/1024/1024) } },@{ Label = "FreeSpace(GB)" ; Expression = { "{0:N2}" -f ($_.FreeSpace/1024/1024/1024) } },@{ Label = "UsedSpace(GB)" ; Expression = { "{0:N2}" -f ($_.UsedSpace/1024/1024/1024) } },@{ Label = "PercentFree" ; Expression = { "{0:N2}" -f ($_.PercentFree) }}

Leave a reply

Your email address will not be published.