Skip to content

Instantly share code, notes, and snippets.

@njdro
Last active January 26, 2022 17:14
Show Gist options
  • Select an option

  • Save njdro/1b3b45a904d4fb8c77d31f21bcafc252 to your computer and use it in GitHub Desktop.

Select an option

Save njdro/1b3b45a904d4fb8c77d31f21bcafc252 to your computer and use it in GitHub Desktop.

Revisions

  1. meoso revised this gist Jan 26, 2022. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions datastore-stats.ps1
    Original file line number Diff line number Diff line change
    @@ -22,10 +22,10 @@ try {
    @{N='VMCount';E={$_.ExtensionData.VM.Count}},
    @{N='ProvisionedSpaceGB';E={[math]::Round(($_.ExtensionData.Summary.Capacity - $_.Extensiondata.Summary.FreeSpace + $_.ExtensionData.Summary.Uncommitted)/1GB,2)}},
    @{N='UnCommittedGB';E={[math]::Round($_.ExtensionData.Summary.Uncommitted/1GB,2)}},
    @{N='FreeGB/CapacityGB';E={[math]::Round(($_.FreespaceGB/$_.CapacityGB),4).ToString("P")}},
    @{N='ProvisionedGB/CapacityGB';E={[math]::Round(($_.ExtensionData.Summary.Capacity - $_.Extensiondata.Summary.FreeSpace + $_.ExtensionData.Summary.Uncommitted)/$_.CapacityGB/1GB,4).ToString("P")}}
    @{N='FreeGB/CapacityGB %';E={[math]::Round(($_.FreespaceGB/$_.CapacityGB)*100,2 -f 000.00)}},
    @{N='ProvisionedGB/CapacityGB %';E={[math]::Round(($_.ExtensionData.Summary.Capacity - $_.Extensiondata.Summary.FreeSpace + $_.ExtensionData.Summary.Uncommitted)/$_.CapacityGB/1GB*100,2 -f 000.00)}}
    }
    $report | Sort-Object -Property 'ProvisionedGB/CapacityGB' | Export-Csv datastore-stats.CSV -NoTypeInformation -UseCulture
    $report | Sort-Object -Property 'ProvisionedGB/CapacityGB %' | Export-Csv datastore-stats.CSV -NoTypeInformation -UseCulture
    ls datastore-stats.CSV
    disconnect-viserver -Confirm:$false
    } else {
  2. meoso created this gist Jan 26, 2022.
    36 changes: 36 additions & 0 deletions datastore-stats.ps1
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    [CmdletBinding()]
    param(
    [Parameter(Mandatory=$True,Position=0,HelpMessage="The script will output to .CSV datastore statistics for the provided vCenter Server hostname or FQDN")]
    [string]$vCenter
    )

    Import-Module VMware.VimAutomation.Core | Out-Null

    try {
    Connect-VIServer -Server $vCenter -Protocol https -Force -ErrorVariable err -ErrorAction SilentlyContinue | Out-Null
    } catch {
    Out-Null
    } finally {
    if ($err.Count -eq 0) {
    Write-Output "Fetching DataStore statistics..."

    $datastores = get-datastore
    $report = foreach ($store in $datastores) {
    $store | Select @{N='Datacenter';E={$_.Datacenter.Name}},
    @{N='DSCluster';E={Get-DatastoreCluster -Datastore $_ | Select -ExpandProperty Name}},
    Name,CapacityGB,@{N='FreespaceGB';E={[math]::Round($_.FreespaceGB,2)}},
    @{N='VMCount';E={$_.ExtensionData.VM.Count}},
    @{N='ProvisionedSpaceGB';E={[math]::Round(($_.ExtensionData.Summary.Capacity - $_.Extensiondata.Summary.FreeSpace + $_.ExtensionData.Summary.Uncommitted)/1GB,2)}},
    @{N='UnCommittedGB';E={[math]::Round($_.ExtensionData.Summary.Uncommitted/1GB,2)}},
    @{N='FreeGB/CapacityGB';E={[math]::Round(($_.FreespaceGB/$_.CapacityGB),4).ToString("P")}},
    @{N='ProvisionedGB/CapacityGB';E={[math]::Round(($_.ExtensionData.Summary.Capacity - $_.Extensiondata.Summary.FreeSpace + $_.ExtensionData.Summary.Uncommitted)/$_.CapacityGB/1GB,4).ToString("P")}}
    }
    $report | Sort-Object -Property 'ProvisionedGB/CapacityGB' | Export-Csv datastore-stats.CSV -NoTypeInformation -UseCulture
    ls datastore-stats.CSV
    disconnect-viserver -Confirm:$false
    } else {
    Write-Output "failed to connect to ${vCenter}. Exiting."
    Exit
    }
    }