# encoding: ascii
# api: powershell
# title: VMware datastore graph
# description: Creates a graph using office web components showing the usage of all datastores
# version: 0.1
# type: class
# license: CC0
# x-poshcode-id: 588
# x-archived: 2010-02-06T01:43:26
#
#
if ((Test-Path REGISTRY::HKEY_CLASSES_ROOT\OWC11.ChartSpace.11) -eq $False)
{
Write-Host "This script requires Office Web Components to run correctly, please install these from the following website: http://www.microsoft.com/downloads/details.aspx?FamilyId=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en"
exit
}
connect-VIServer yourserver
$Caption = "Datastore Usage %"
$categories = @()
$values = @()
$chart = new-object -com OWC11.ChartSpace.11
$chart.Clear()
$c = $chart.charts.Add(0)
$c.Type = 4
$c.HasTitle = "True"
$series = ([array] $chart.charts)[0].SeriesCollection.Add(0)
Get-datastore |Sort-Object FreeSpaceMB -Descending | foreach-object {
$capacitymb = $_.CapacityMB
$FreeSpaceMB = $_.FreeSpaceMB
$UsedSpace = $capacitymb - $freespacemb
$perc = $UsedSpace / $capacitymb * 100
$categories += $_.Name
$values += $perc * 1
}
$series.Caption = $Caption
$series.SetData(1, -1, $categories)
$series.SetData(2, -1, $values)
$filename = (resolve-path .).Path + "\Chart.jpg"
$chart.ExportPicture($filename, "jpg", 800, 500)
invoke-item $filename