Files
Sandbox/VMware-DatastoreCapacity.ps1
T
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

31 lines
1.6 KiB
PowerShell

$Datacenters = Get-Datacenter -Name Primary*, Secondary*
ForEach ($Datacenter in $Datacenters) {
write-warning -Message $Datacenter.name
$DatacenterName = $Datacenter.Name
$Datastores = $Datacenter | Get-Datastore -Name *FS92*
$result = [System.Collections.ArrayList]@()
ForEach ($Datastore in $Datastores) {
write-warning -Message $Datastore.name
$VMsOnDatastore = $null
$VMsOnDatastore = $Datastore | Get-VM
$VMDKsOnDatastore = $VMsOnDatastore | Get-HardDisk | Where-Object Filename -Match $Datastore.Name
$obj = [PSCustomObject]@{
'DatastoreName' = $Datastore.Name;
'UsedSpaceGB' = [math]::round($Datastore.CapacityGB - $Datastore.FreeSpaceGB, 2);
#'FreeSpaceGB' = [math]::round($Datastore.FreeSpaceGB, 2);
'CapacityGB' = [math]::round($Datastore.CapacityGB, 2);
'PercentUsed' = [math]::round(($Datastore.CapacityGB - $Datastore.FreeSpaceGB) / $Datastore.CapacityGB, 2);
#'VMUsedSpaceGB' = [math]::round(($VMsOnDatastore | Measure-Object -Sum UsedSpaceGB).Sum, 2);
#'VMProvisionedGB' = [math]::round(($VMsOnDatastore | Measure-Object -Sum ProvisionedSpaceGB).Sum, 2);
#'VMPercentUsed' = [math]::round(($VMsOnDatastore | Measure-Object -Sum UsedSpaceGB).Sum / ($VMsOnDatastore | Measure-Object -Sum ProvisionedSpaceGB).Sum , 2);
}
$null = $result.Add($obj)
}
$Date = Get-Date -UFormat %Y%m%d
$result | Export-Csv -Path "D:\State of North Dakota\-Tm-ITD-Virtualization - Documents\FS9200 Overprovision Fixes\FS9200-$DatacenterName-$Date.csv"
}