VMware PowerCLI in PowerShell ISE verwenden

    PowerShell_ISE 5.0Die Instal­lation von PowerCLI legt ein Icon an, das Power­Shell startet und dabei ein Script zur Ini­tiali­sierung der Umge­bung aus­führt. Eine ähn­liche Inte­gra­tion mit der gra­fischen Power­Shell ISE ist nicht vorge­sehen, aber man kann sich auf ver­schie­dene 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 Instal­lations­routine 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 Standard­installation 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 zusammen­suchen 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.AllUsers­Current­Host und $profile.Current­User­Current­Host 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.

    Der Import des VMware-Core-Moduls lädt ca. 300 Cmdlets

    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.

    Keine Kommentare