$AllVMs = Get-VM $WinVMs = $AllVMs | where-object { $_.Name -like "*.nd.gov" -and $_.Name -notlike "des*" -and $_.Name -notlike "bnd*" -and $_.GuestId -like "Windows*" -and $_.GuestId -notlike "Windows7*" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | sort-object Name $WinVMs | Set-Content C:\users\zmeier\desktop\WinVMs.txt $func = { $CimInstanceCS = Get-WMIObject -Class Win32_ComputerSystem $CimInstanceOS = Get-WMIObject -Class Win32_OperatingSystem $CimInstancePFu = Get-WMIObject -Class Win32_PageFileUsage $CimInstancePFs = Get-WMIObject -Class Win32_PageFileSetting $CimInstanceVol = Get-WMIObject -Class Win32_Volume $obj = [PSCustomObject]@{ ComputerName = $env:COMPUTERNAME HardwareMemoryGB = [math]::round(($CimInstanceOS.TotalVisibleMemorySize / 1MB), 2); PageFileAllocatedBaseSizeGB = [math]::round(($CimInstancePFu.AllocatedBaseSize / 1KB), 2); CommittedMemoryGB = [math]::round(($CimInstanceOS.TotalVirtualMemorySize - $CimInstanceOS.FreeVirtualMemorySize) / 1MB, 2); CurrentCommittedMemoryGB = [math]::round((Get-Counter -Counter '\memory\% committed bytes in use').CounterSamples.CookedValue / 1GB, 2) PageFileSystemManaged = If ( $CimInstancePFs.InitialSize -eq 0) { "True" }Else { "False" } PageFileInitialSizeGB = [math]::round($CimInstancePFs.InitialSize / 1KB, 2); PageFileMaximumSizeGB = [math]::round($CimInstancePFs.MaximumSize / 1KB, 2); PageFileCurrentUsageGB = [math]::round(($CimInstancePFu.CurrentUsage / 1KB), 2); PageFilePeakUsageGB = [math]::round(($CimInstancePFu.PeakUsage / 1KB), 2); PageFileLocation = $CimInstancePFu.Name; PageDiskUsageGB = [math]::round((($CimInstanceVol | Where-Object { $_.DriveLetter -eq $CimInstancePFu.Name.split('\')[0] }).Capacity - ($CimInstanceVol | Where-Object { $_.DriveLetter -eq $CimInstancePFu.Name.split('\')[0] }).FreeSpace)/1GB, 2) PageDiskSizeGB = [math]::round(($CimInstanceVol | Where-Object { $_.DriveLetter -eq $CimInstancePFu.Name.split('\')[0] }).Capacity / 1GB, 2); PageDiskSizeCorrect = If ([math]::round(($CimInstanceVol | Where-Object { $_.DriveLetter -eq $CimInstancePFu.Name.split('\')[0] }).Capacity / 1GB, 2) -lt [math]::round(($CimInstanceOS.TotalVisibleMemorySize / 1MB), 2)) { $true } Else { $false }; PageFileMaxCorrect = If ([math]::round($CimInstancePFs.MaximumSize / 1KB, 2) -ne 0 -and [math]::round($CimInstancePFs.MaximumSize / 1KB, 2) -lt ([math]::round(($CimInstanceVol | Where-Object { $_.DriveLetter -eq $CimInstancePFu.Name.split('\')[0] }).Capacity / 1GB, 2) - 0.5)) { $true }Else { $false }; } $obj } Invoke-Command -ComputerName $WinVMs -ScriptBlock $func -Credential $AdminCred -ov x