Podcast: PowerShell in ACMP, alles was man wissen muss (1)

PowerShell ist die wichtigste Skriptsprache für Windows-Systeme. Die Integration von PowerShell in ACMP Client-Commands ermöglicht es, sehr individuelle Automatisierungen zu realisieren. In dieser Podcast-Reihe wird alles Wichtige zu diesem Thema erklärt, inklusive Beispielen und Sourcecode.

In der Windows-Welt lässt sich die PowerShell nicht wegdenken

Die Client-Commands in ACMP unterstützten die Einbindung von fünf populären Skript-Scprachen.

Ein besonderes Augenmerk liegt hier auf der PowerShell. Denn es gibt kaum ein Problem, eine Einstellung oder einen Wert, den man mit PowerShell nicht erreichen oder ermitteln könnte.

In dieser Podcastreihe befasse ich mich mit der Integration der PowerShell in ACMP und insbesondere damit, wie man die ermittelten Werte aus der PowerShell, unabhängig von ihrem Umfang, zur weiteren Bearbeitung an die Client-Commands zurückgibt.

Denn, so mächtig die PowerShell auch ist, die eine oder andere Unart, die Skript-Sprachen gemein ist, hat auch sie nicht abgelegt.

Damit hier nichts schief und die Anbindung klappt, bietet diese Podcast-Reihe eine Fülle an Informationen und Beispielen.

Wir fangen mal ganz klein an

Ganz am Anfang steht die Frage, wie ein PoserShell Skript parametrisieren können, damit das PowerShell Skript „weiß“, was es zu tun hat. Hier ist die Notation so einfach wie wirksam. Wir haben selbst im Skripteditor Zugriff auf alle Variablen des Client-Commands und können diese mit „Steuerung – Leertaste“ aufrufen und einbinden.

Wird das Client-Command dann ausgeführt, dann ersetzt ein ACMP eigener Präprozessor die so eingefügten Variablen mit den echten Werten, die sie zu dem Zeitpunkt haben.

So lässt sich universeller PowerShell Code erstellen, der je nach Anwendungsfall gezielt mit den korrekten Parameter versehen werden kann.

Und wenn das Skript Ergebnisse liefert, die weiter verarbeitet werden müssen?

Viele Client-Commands sind die Endstation einer automatisierten Maßnahme und wir müssen häuft nur noch die Rückmeldung auswerten, ob das Skript ohne Fehler durchgelaufen ist.

Wenn aber ein Fehler auftritt, wie erfolgt, wie wird dann ein Fehlertext sinnvoll für die Nacharbeit zurück gegeben?

Oder was ist, wenn kein Fehler auftritt und das Skript nur dazu dient uns komplexe Daten zu erheben, die erst in weiteren Schritten final verarbeitet werden können? Ich auch hier die Übergabe möglich?

In allen Fällen lautet die Antwort: Ja! Wie das geht zeige ich an praktischen Beispielen.

Was ist wenn die Daten komplex sind?

Für die Rückübergabe von Daten stehen eine Fülle von Optionen zur Verfügung, selbst der Exit-Code lässt sich für einfache Operationen dieser Arte verwenden.

Werden die Daten aber komplexer, dann müssen andere Methoden verwendet werden. Die Königsdisziplin hier ist die Nutzung von XML Strukturen. Diese bieten die höchste Flexibilität aber auch ein tiefes Verständnis der Arbeitsweise. Im zweiten Teil des Podcasts gehe ich gezielt darauf ein.

Bis dahin werfen wir einen Blick auf andere Möglichkeiten, um Daten an das Client-Command zurück zu geben, denn in den meisten Fällen müssen wir nicht ins obere Regal greifen und können mit einfacheren Mitteln unsere Ziele erreichen.