$VCServerName = Read-Host "VC Server" $Hive = "LocalMachine" $RefKeyName = 'HARDWARE\DEVICEMAP\VIDEO' $RefValue = '\Device\Video0' $LookupValue = 'Acceleration.Level' $VC = Connect-VIServer $VCServerName $VMS = Get-VM | Sort Name $myCol = @() ForEach ($VM in $VMS) { $ServerName = $VM.Guest.HostName $Registry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::$Hive, $ServerName) $RefKey = $registry.OpenSubKey($RefKeyName) $LookupKeyName = $RefKey.GetValue($RefValue).TrimStart("\Registry\Machine\") $LookupKey = $Registry.OpenSubKey($LookupKeyName) $myObj = "" | Select Name, AccLevel $myObj.Name = $VM.Name $myObj.AccLevel = $LookupKey.GetValue($LookupValue) $myCol += $myObj } Disconnect-VIServer -Confirm:$False $myCol | Format-Table -AutoSize