Mit vSphere PowerCLI bietet VMware ein PowerShell Snapin das mit über 250 cmdlets die Verwaltung der vSphere Umgebung vereinfacht bzw. Automatisierung ermöglicht.
Die aktuelle Version kann unter http://vmware.com/go/powercli heruntergeladen werden.
Die Installationsroutine installiert außer den PowerShell Snapins die VMware VIX API, die das Management von virtuellen Maschinen ermöglicht. Diese API erlaubt es Programme direkt im Gastsystem der VM ausführen bzw. Dateien zu manipulieren.
Nachdem das License Agreement akzeptiert wurde, kann man den Pfad für die Installation festlegen, jetzt noch auf installieren klicken und das wars.
Auf dem Desktop wurde eine Verknüpfung zu PowerCLI angelegt, sonst findet man sie unter Start, Programme, VMware, VMware vSphere PowerCLI.
Wenn man die PowerCLI startet wird das PSSnapin “VMware.VimAutomation.Core” geladen, dieses kann natürlich auch in einer “normalen” PowerShell Session mit Add-PSSnapin hinzugefügt werden.
Wie in der Titelleist zu erkennen ist, ist die PowerCLI standardmäßig “not connected”, um auf die Virtuelle Umgebung zugreifen zu können muss man eine Verbindung mit dem vCenter Server herstellen. Dazu verwendet man das Connect-VIServer cmdlet, z.B.:
Connect-VIServer vcenter.ntsystems.local –credential (Get-Credential)
Mit diesem Befehl verbindet man die PowerCLI mit dem vCenter Server und kann alternative Anmeldeinformationen mitgeben, wenn der Benutzer mit dem die PowerCLI gestartet wurde ausreichende Rechte im vCenter hat kann man –credential natürlich weglassen.
Wenn die Verbindung hergestellt wurde kann man mit PowerCLI arbeiten und sich z.B. eine Liste der VMs ausgeben lassen die nicht eingeschaltet sind:
Get-VM | ?{$_.PowerState -notlike "*On*"}
Alternativ kann man PowerCLI auch direkt mit einem ESX/ESXi Host verbinden, das ist z.B nötig um mit Get-ESXTop Performance Informationen über einen Host zu sammeln.
Die Hilfe zur PowerCLI kann einfach mit dem cmdlet Get-PowerCLIHelp aufgerufen werden, empfehlenswert ist auch Get-PowerCLICommunity.
Hier noch ein kleiner Tipp: Wer die PowerShell ISE verwendet kann eigene Add-Ons hinzufügen. Ich habe ein einfaches Add-On gebastelt um das PowerCLI Snapin in die ISE Session zu laden. Dazu einfach folgendes Script in das ISE Profil kopieren. Um die ISE Profil Datei zu öffnen “notepad $profile.CurrentUserCurrentHost” in der ISE ausführen.
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add(
"Connect to vCenter",
{
Add-PSSnapin VMware.VimAutomation.Core
$VIServer = Read-Host -Prompt "ESX/ESXi Host or vCenter Server FQDN"
if(Test-Connection $VIServer -Quiet) {Connect-VIServer $VIServer}
else {Write-Output "Server not reachable"}
},
"Control+Alt+V"
)
Die Profildatei sollte signiert sein, wie man das macht habe ich hier beschrieben.
so long
tom