VMware PowerCLI in PowerShell ISE verwenden


    Tags: ,

    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.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links