ISESteroids – Doping für die PowerShell ISE

Wer intensiv mit der PowerShell arbeitet, hat sich bestimmt schon über die eine oder andere Grenze des Standard-ISE-Editors geärgert. Und wie ich vielleicht auch schon den einen oder anderen Versuch mit einem Drittanbieter-Tool gestartet.
Spätestens, wenn man aber auf unterschiedlichen Kundensystemen entwickelt, muss man früher oder später wieder auf die ISE zurückgreifen, da eine Zusatz-Installation nicht gewünscht ist oder an den Lizenzkosten scheitert.
Also – in den sauren Apfel beißen, die Grenzen der ISE akzeptieren und das Beste draus machen – oder wie ich über die ISE Steroids stolpern und begeistert sein!

Was sind die ISESteroids?

Hierbei handelt es sich um ein Add-On für die Windows PowerShell ISE vom PowerShell Experten Dr. Tobias Weltner, welches zahlreiche nützliche Erweiterungen für den Standard-Editor bringt.

Download und Installation

Die ISESteroids können unter http://www.powertheshell.com/isesteroids2/download/ heruntergeladen werden und erfordern für die Installation keine spezielle Berechtigungen. Voraussetzung für die Nutzung ist PowerShell Version 3 oder höher. PowerShell 5 – User können diese direkt aus der ISE via PsGet installieren (alle anderen laden das ZIP-File):
Gestartet werden die Tools einfach mit Start-Steroids.

Erster Eindruck

Als erstes fällt die geänderte Darstellung auf:
Aussehen Standard-ISE

Standard-ISE

ISE mit ISESteroids

ISE mit ISESteroids

Neben den vielen neuen Icons finden sich die zahlreichen Erweiterungen in zusätzlichen Menüpunkten – zu viele, um sie alle hier aufzählen zu können.

Meine Highlights:

  • File Version History – (automatische) Versionierung von Scripten
  • Create Application – erstellt aus dem Script eine eigenständig lauffähige EXE-Datei
  • MyCommands – erlaubt die Erstellung eigener Menüeinträge inkl. Keyboard-Shortcut
  • Simulate – führt die cmdlets im Simulationsmodus aus – es werden keine Änderungen vorgenommen
  • Refactoring Add-On – formatiert das Script nach verschiedenen Best-Practice-Vorlagen, die je nach Gefallen an- und abgewählt werden können
  • WinMerge File Compare – 3rd Party Tool zum Unterscheiden und Zusammenführen von Dateien und Ordnern
  • Variable Monitor Add-On – zeigt alle benutzerdefinierten Variablen inkl. Inhalt an
Obwohl ich bereits vor 26 Jahren das Programmieren (damals noch Basic, Turbo Pascal und C) gelernt habe und seit vielen Jahren mit der PowerShell arbeite, erwische ich mich immer wieder dabei, „schlampig“ zu scripten. Ist halt doch bequemer, „schnell mal“ ’nen Alias zu verwenden (der es einem selbst und Anderen erschwert, das Script zu lesen), oder die Kommentare gleich ganz wegzulassen.
Hier bieten die ISESteroids eine großartige Unterstützung: bereits während der Erstellung erhält man Vorschläge für „besseres Scripting“ – alles, was nicht den Best Practices entspricht, wird z.B. mit einer Lampe oder einem Ausrufezeichen markiert. Der Tooltip erklärt dann das jeweilige Problem:
Beispiel: Syntax Error

Beispiel: Syntax Error

Beispiel: Hinweis auf doppelte Anführungszeichen

Beispiel: Hinweis auf doppelte Anführungszeichen

Beispiel: Hinweis auf Alias

Beispiel: Hinweis auf Alias

Diese Funktionen sind sowohl für Einsteiger wie auch für Profis super hilfreich. Speziell Einsteiger, welche noch nicht so sicher sind, können hier eine Menge lernen. Und den Profis wird einfach lästige Arbeit abgenommen.
Mit dem Refactoring AddOn kann man bequem vorhandene Scripte automatisch nach Best-Practice-Vorgaben formatieren lassen – dies ist vor allem hilfreich, wenn man Scriptteile aus dem Internet verwendet.
Beispiel Script unformatiert

Beispiel: Script unformatiert

Beispiel Script mit Refactoring Add-On formatiert

Beispiel: Script mit Refactoring Add-On formatiert

Einzig die Tatsache, die TAB-weite nicht anpassen zu können, stört mich hier etwas. TABs werden hier mit 2 Leerzeichen umgesetzt – mir persönlich gefallen 4 Leerzeichen besser.

 

Bevor ich die ISESteroids kannte, habe ich meine Funktionen hauptsächlich in einem einzigen Textfile gesammelt und per Copy / Paste dann in jedes Script gepackt, in dem ich sie verwenden wollte. Hat den Vorteil, dass das jeweilige Script weitergegeben werden kann, ohne dass man sich Gedanken machen muss, was z.B. an Modulen noch dazugehört, wird aber bei größeren Projekten sehr unübersichtlich und ist bei der Pflege eine Katastrophe.

 

Stell Dir vor, Du willst in Deiner ‚Haus-und-Hof Write-Log-Funktion‘ etwas ändern und musst jedes Script einzeln anpacken… Horror…
Da kommt „Export function to module“ gerade recht:
Beispiel: Funktion in PowerShell Modul exportieren

Beispiel: Funktion in PowerShell Modul exportieren

Hiermit können direkt aus dem Script heraus neue Module erstellt oder die Funktion in bestehende Module eingefügt werden.

Snippets

Zugegeben, ich habe nicht alles aus meiner Textdatei kopiert – irgendwann habe ich meine meist-verwendeten Script-Parts in Snippets gepackt. Aber auch das war recht umständlich: Snippet für die Erstellung eines neuen Snippets aufrufen, Script-Block einfügen, Snippet erstellen. Wird mit wachsender Anzahl auch schnell unübersichtlich.

 

Da ist die Snippet-Verwaltung der ISESteroids deutlich bequemer:
Beispiel: Snippet Manager

Beispiel: Snippet Manager

Versionierung

… bestand bei mir seither darin, das Script zu kopieren, das Datum in den Dateinamen zu packen und bestenfalls noch einen Kommentar mit der jeweiligen Änderung zu hinterlassen. Auch hier helfen die ISESteroids:
Beispiel Versionierung

Beispiel Versionierung

Entweder man nutzt gleich den „Auto Mode“, durch den bei jeder Speicherung automatisch ein Snapshot des Scriptes erstellt wird oder man erstellt die gewünschte Version nach Bedarf manuell. Zusätzlich können noch Notizen zur jeweiligen Version hinzugefügt werden. Sehr hilfreich ist die Vergleichsfunktion, mit der die Unterschiede zwischen dem aktuellen Stand und z.B. der letzten lauffähigen Version dargestellt werden können.

Lizenzierung / Kosten

Die ISESteroids sind je nach Funktionsumfang ab 99,- € zzgl. MwSt. zu haben (Stand Mai 2016). Für den Mehrwert, den sie bieten, absolut gerechtfertigt. Diese Investition rechnet sich innerhalb kürzester Zeit.
Die Einzeluserlizenz darf auf drei unterschiedlichen Systemen gleichzeitig genutzt und kann auf andere Systeme übertragen werden.

Fazit

Zuerst mal ein ganz dickes Lob an den Entwickler Tobias Weltner! Mit den ISESteroids habe ich viele Funktionen bekommen, die ich bei der ISE schmerzlich vermisst habe. Ich kann die ISESteroids wirklich jedem, der regelmäßig mit der PowerShell arbeitet, uneingeschränkt weiterempfehlen.
Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*