Today i want to show a way of finding vms that are orphaned, disconnected, inaccessible, invalid vms using PowerCLI.
Again , we will be utilizing get-view for that with proper filter.
If the VM gets into status of disconnected, orphaned, inaccessible or invalid it will change it’s connectionstate property. So , basics:
how can we know what kind of connectionstate are thee ?
[sourcecode language=”powershell”]
[enum]::GetNames([vmware.vim.virtualmachineconnectionstate])
connected
disconnected
orphaned
inaccessible
invalid
[/sourcecode]
This property is described on vsphere documentation website -> one one one.
Let’s find now the vms with oprhaned connectionstate.
[sourcecode language=”powershell”]
get-view -ViewType VirtualMachine -Filter @{‘RunTime.ConnectionState’=’orphaned’}
[/sourcecode]
So if you want to look for disconnected instead of orphaned vms, you just change the property ‘connectionstate’ value to ‘disconnected’, or you can just look for other than connected.
[sourcecode language=”powershell”]
get-view -ViewType VirtualMachine -Filter @{‘RunTime.ConnectionState’=’disconnected|inaccessible|invalid|orphaned’} | select name
[/sourcecode]
or the other way around which is , those which are not in the ‘connected’ state:
[sourcecode language=”powershell”]
get-view -ViewType VirtualMachine -Filter @{‘RunTime.ConnectionState’=’^(?!connected).*$’}
[/sourcecode]