PowerCLI ist ein Befehlszeilen-Tool von VMware, das Administratoren und Entwicklern die Automatisierung, Verwaltung und Skalierung von VMware-Umgebungen erleichtert. Es basiert auf Microsofts PowerShell und bietet eine breite Palette von Cmdlets (Commandlets), die speziell für die Verwaltung von VMware-Produkten wie vSphere, vCenter Server, vSAN und NSX-T entwickelt wurden.

Man kann PowerCLI als Installationspackage herunterladen (Login) und installieren oder als Powershell Modul hinzufügen.

Uninstall-Module -Name VMware.PowerCLI -AllVersions
 
# Download PowerCLI as Powershell Module
Install-Module -Name VMware.PowerCLI -RequiredVersion 13.0.0.20829139
 
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
 
# Verbindung mit vCenter Server herstellen
Connect-VIServer -Server <vCenter_Server> -User <Benutzername> -Password <Passwort>
 
# Alle virtuellen Maschinen abrufen und anzeigen
Get-VM
Get-VM | Where-Object { $_.Guest.IPAddress -match "10.0.0.*" }
 
Get-View -ViewType VirtualMachine | Select Name, @{N="IP";E={($_.Guest.Net | ForEach-Object { $_.IpAddress }) -join ", "}}
 
Get-View -ViewType VirtualMachine | Select Name, @{N="PowerState";E={$_.Runtime.PowerState}}, @{N="IP";E={
    if ($_.Guest.Net) {
        [string]::Join(",", ($_.Guest.Net | ForEach-Object { $_.IpAddress }))
    } else {
        "Keine IP"
    }
}}
 
Get-View -ViewType VirtualMachine | Select Name, @{N="PowerState";E={$_.Runtime.PowerState}}, @{N="IPv4";E={
    if ($_.Guest.Net) {
        [string]::Join(",", ($_.Guest.Net | ForEach-Object { $_.IpAddress | Where-Object { $_ -match "^\d{1,3}(\.\d{1,3}){3}$" } }))
    } else {
        "Keine IP"
    }
}}
 
# Spezifische VM abrufen
Get-VM -Name myVM | Format-List *
 
# Verbindung trennen
Disconnect-VIServer -Server <vCenter_Server> -Confirm:$false