In my previous blog, we discussed how to install PowerCLI module and connect to a stand-alone ESXi host. Now let's start with connecting to the vCenter server.
Connect-VIServer <IP of vCenter server>
Get the list of data centers present under this vCenter server: Get-Datacenter
Get the list of clusters under a datacenter: Get-Datacenter DC01 | Get-Cluster
To verify the status of HA, DRS, and vSAN of a cluster:
(Get-Cluster Cluster01) | select Name,DrsEnabled,DrsAutomationLevel,HAEnabled,HAFailoverLevel,VsanEnabled
Get the list of ESXi hosts part of a specific cluster:
Get-Datacenter DC01 | Get-Cluster Cluster01 | Get-VMHost
Get-Datacenter DC01 | Get-Cluster Cluster01 | Get-VMHost 192.168.105.11 | Get-VM
To get a list of powered on and powered off VMs:
(Get-Cluster Cluster01 | Get-VM).where{$PSItem.PowerState -eq "PoweredOn"}
(Get-Cluster Cluster01 | Get-VM).where{$PSItem.PowerState -eq "PoweredOff"}
An efficient way of doing it in a single go is given below:
$vmson, $vmsoff = (Get-Cluster Cluster01 | Get-VM).where({$PSItem.PowerState -eq "PoweredOn"}, 'split')
$vmson will have the list of VMs that are PoweredOn and $vmsoff will have the list of VMs that are PoweredOff.
Cluster level inventory:
Get-Cluster | Get-Inventory
Datastore details of a cluster:
Get-Cluster | Get-Datastore | select Name, FreeSpaceGB, CapacityGB, FileSystemVersion, State
Hope this was useful. Cheers! In the next post, we will talk about performing basic VM operations using PowerCLI.