Get Cluster Shared Volume (CSV) free space with PowerShell

Posted by

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.

 

 

4 comments

  1. 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

  2. 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. Required fields are marked *