vPowerCLI

Shogan.tech Suggestion

Jan 22nd, 2012
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Get-VMUsefulStats {
  2.     [CmdletBinding()]
  3.     param(
  4.         [Parameter(Position=0,Mandatory=$true,HelpMessage="Name of the VM to fetch stats about",
  5.         ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
  6.         [PsObject[]]$VMName
  7.     )
  8.     begin {
  9.         [PsObject[]]$outputAry = @()
  10.     }
  11.     process {
  12.         foreach ($VM in $VMName) {
  13.             if ($VM.GetType().Name -eq [String]) {
  14.                 $VM = Get-VM $VMName
  15.             }
  16.             $VMHardwareVersion = $VM.Version
  17.             $VMGuestOS = $VM.OSName
  18.             $VMvCPUCount = $VM.NumCpu
  19.             $VMMemShare = ($VM.ExtensionData.Config.ExtraConfig | ?{$_.Key -eq "sched.mem.pshare.enable"}).Value
  20.             $VMMemoryMB = $VM.MemoryMB
  21.             $VMMemReservation = $VM.ExtensionData.ResourceConfig.MemoryAllocation.Reservation
  22.             $VMUsedSpace = [Math]::Round([Decimal]$VM.UsedSpaceGB,2)
  23.             $VMProvisionedSpace = [Math]::Round([Decimal]$VM.ProvisionedSpaceGB,2)
  24.             $VMPowerState = $VM.PowerState
  25.              
  26.             $vmOutput = New-Object -TypeName PSObject -Property @{
  27.                 Name = $VM.Name
  28.                 HW = $VMHardwareVersion
  29.                 VMGuestOS = $VMGuestOS
  30.                 vCPUCount = $VMvCPUCount
  31.                 MemoryMB = $VMMemoryMB
  32.                 MemoryReservation = $VMMemReservation
  33.                 MemSharing = $VMMemShare
  34.                 UsedSpaceGB = $VMUsedSpace
  35.                 ProvisionedGB = $VMProvisionedSpace
  36.                 PowerState = $VMPowerState
  37.             }
  38.             $outputAry = $outputAry + $vmOutput
  39.         }
  40.     }
  41.     End {
  42.         $outputAry
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment