Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Get-VMUsefulStats {
- [CmdletBinding()]
- param(
- [Parameter(Position=0,Mandatory=$true,HelpMessage="Name of the VM to fetch stats about",
- ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
- [PsObject[]]$VMName
- )
- begin {
- [PsObject[]]$outputAry = @()
- }
- process {
- foreach ($VM in $VMName) {
- if ($VM.GetType().Name -eq [String]) {
- $VM = Get-VM $VMName
- }
- $VMHardwareVersion = $VM.Version
- $VMGuestOS = $VM.OSName
- $VMvCPUCount = $VM.NumCpu
- $VMMemShare = ($VM.ExtensionData.Config.ExtraConfig | ?{$_.Key -eq "sched.mem.pshare.enable"}).Value
- $VMMemoryMB = $VM.MemoryMB
- $VMMemReservation = $VM.ExtensionData.ResourceConfig.MemoryAllocation.Reservation
- $VMUsedSpace = [Math]::Round([Decimal]$VM.UsedSpaceGB,2)
- $VMProvisionedSpace = [Math]::Round([Decimal]$VM.ProvisionedSpaceGB,2)
- $VMPowerState = $VM.PowerState
- $vmOutput = New-Object -TypeName PSObject -Property @{
- Name = $VM.Name
- HW = $VMHardwareVersion
- VMGuestOS = $VMGuestOS
- vCPUCount = $VMvCPUCount
- MemoryMB = $VMMemoryMB
- MemoryReservation = $VMMemReservation
- MemSharing = $VMMemShare
- UsedSpaceGB = $VMUsedSpace
- ProvisionedGB = $VMProvisionedSpace
- PowerState = $VMPowerState
- }
- $outputAry = $outputAry + $vmOutput
- }
- }
- End {
- $outputAry
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment