Tags: vSphere, PowerShell
Die Installation von PowerCLI legt ein Icon an, das PowerShell startet und dabei ein Script zur Initialisierung der Umgebung ausführt. Eine ähnliche Integration mit der grafischen PowerShell ISE ist nicht vorgesehen, aber man kann sich auf verschiedene Arten selbst behelfen.
Für die interaktive Verwaltung von vSphere reicht die Kommandozeile völlig aus. Möchte man jedoch längere Scripts erstellen und dabei PowerCLI-Cmdlets verwenden, dann bietet die grafische Umgebung klare Vorteile. Die Installationsroutine von VMware bereitet die PowerShell_ISE darauf jedoch nicht vor.
Init-Script ausführen
Die naheliegendste Methode, um den grafischen Editor für PowerCLI einzurichten, besteht darin, dort das gleiche Script auszuführen, das beim Start von PowerCLI über das zuständige Icon läuft. Es heißt Initialize-PowerCLIEnvironment.ps1 und findet sich bei einer Standardinstallation unter "C:\Programme\VMware\vSphere PowerCLI\Scripts".
Dieses kann man von innerhalb der ISE ausführen indem man ihm den Punkt-Operator voranstellt ("Dot-Sourcing"):
. "C:\Programme\VMware\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
Allerdings ist es nicht sehr komfortabel, wenn man jedes Mal den Namen und den Pfad des Scripts zusammensuchen muss, um PowerCLI zu laden. Daher liegt es nahe, den Aufruf in das PowerShell-Profil zu übernehmen.
Script über Profil laden
Innerhalb der PowerShell_ISE enthalten die Variablen $profile.AllUsersCurrentHost und $profile.CurrentUserCurrentHost die Namen der beiden möglichen Profildateien, wobei die erste für alle User und die zweite nur beim aktuell angemeldeten Benutzer ausgeführt wird.
Dieses Vorgehen hat den Nachteil, dass PowerCLI jedes Mal geladen wird, auch wenn man es gar nicht benötigt. Daher kann man alternativ eine function definieren, die den Start des Scripts vereinfacht. Die folgende Version ermittelt den Pfad zum Script selbständig aus der Umgebungsvariable PSModulePath:
Nach dem nächsten Start von PowerShell_ISE muss man nur mehr initPCLI eingeben, um das Script zu starten.
Module nach Bedarf laden
Wirft man einen Blick in das relativ lange Script Initialize-PowerCLIEnvironment.ps1, dann erkennt man, dass seine Aufgabe im Wesentlichen darin besteht, alle Module und Snapins für PowerCLI zu laden.
VMware hat in der Version 6 die meisten PSSnapins in Module konvertiert, so dass man sie mit Befehlen wie Get-Module, Get-Command oder Import-Module abfragen und laden kann. So zeigt
Get-Module -ListAvailable -Name VMware*
alle verfügbaren PowerCLI-Module an. Für die meisten Aufgaben der vSphere-Verwaltung reicht es, wenn man
Import-Module -Name VMware.VimAutomation.Core
ausführt. Dies lädt zusätzlich drei weitere Module und insgesamt fast 300 Cmdlets. Danach steht die gewünschte PowerCLI-Unterstützung in Form von Type-ahead, Hilfe-Tooltip oder Syntax-Hervorhebung zur Verfügung.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- VMware bringt künftig vCenter- vor ESXi-Releases, vSphere 8 U1 als IA verfügbar
- VMware PowerCLI v13: Alle Module nun für Windows, Mac und Linux, Update für vSAN und NSX
- VMware PowerCLI 12.6 bringt Cmdlets für das vCSA-Backup
- Tool für Maximalwerte in VMware vSphere, Poster für Cmdlets in PowerCLI 10
- VMware PowerCLI 10.0 für Windows, macOS und Linux: Installation, Anmeldung an vSphere, Upgrade
Weitere Links