14 min read
Microsoft Teams – 3. Teil der Graph PowerShell Reihe
MVP Damien Scoles berichtet über seine Erfahrungen mit Microsoft Graph. In seinem dritten Artikel geht er näher auf...
ScriptRunner Blog
Weihnachten ist die schönste Zeit des Jahres: Geschenke, Glühwein, die Liebsten unter dem Mistelzweig küssen. Die aufwendige Dekoration, der Weihnachtsbaum und die mitreißende Musik … lieben wir das nicht alle?
Leider hat COVID-19 das meiste davon unmöglich gemacht. Auf der positiven Seite werden die Leute während des Lockdowns kreativ. Wir haben die Chance genutzt, um die Möglichkeiten von ScriptRunner in Kombination mit einer IOT-Box zu demonstrieren.
Hinweis: Die Scripte und Beispiele sind für Demozwecke erstellt und nicht serienreif, daher erfolgt die Verwendung auf eigene Gefahr!
Für dieses Projekt haben wir eine NETIO-4C steuerbare PDU verwendet. Diese magische Blackbox hat 4 x 230V Ausgänge, die mit verschiedenen Protokollen (REST API, SNMP, MQTT, Modbus/TCP) angesteuert werden können. Für unsere kleine Demo haben wir folgende Geräte an die Ausgänge angeschlossen und die Ausgänge im Webinterface entsprechend benannt (Abbildung 1):
Ausgang #4 wurde für unser Projekt nicht verwendet.
Abb. 1: Benennung der Ausgänge im Webinterface der NETIO-4C-PDU
Außerdem haben wir einen „write“-Benutzer mit einem Passwort angelegt und die entsprechenden API-Berechtigungen vergeben.
Abbildung 2 zeigt unseren Testaufbau:
Abb. 2: Der Versuchsaufbau
REST steht für REpresentational State Transfer. Es ist ein Ansatz, um in der heutigen Zeit API’s zu erstellen. API steht für Application Programming Interface und kann mit einem Kellner im Restaurant verglichen werden, der die Bestellung vom Kunden an die Küche weitergibt und das Ergebnis an den Kunden liefert.
Die Hauptbausteine der REST-API-Architektur sind:
Erläutern wir dies anhand eines kurzen PowerShell-Beispiels:
und der Endpoint ist 007. Das von der API gelieferte Ergebnis ist eine Liste der James Bond-Filme mit einigen Details in JSON-Format.
Um das Ergebnis lesbar zu machen, können Sie es mit dem Commandlet ConvertFrom-Json von JSON in ein PowerShell-Objekt konvertieren (Abbildung 3)
Abb. 3: Liste der James Bond-Filme, die mit PowerShell über eine REST-Api abgerufen wird
Sie benötigen einige Informationen, um mit der Scripterstellung zu beginnen:
Abb. 4: PowerShell Ausgabe der Variablen $io_box
Wenn Sie die 2 Codezeilen in eine Funktion umwandeln und die Html-Formatierungs- und Formgebungsfunktionen von ScriptRunner nutzen (Abbildung 5), erhalten Sie eine wirklich schöne Ausgabe:
Abb. 5: Mit ScriptRunner können wir die PowerShell-Ausgabe in einen HTML-Bericht umwandeln
Die folgende Funktion gibt den inversen Zustand eines gegebenen Ausgangs zurück. Die erforderlichen Parameter sind:
Die folgenden Parameter sind erforderlich, um den Ausgangszustand festzulegen:
Basierend auf dieser Funktion erstellen wir eine Action im ScriptRunner Portal. Zur einfacheren Handhabung betten wir sie in eine Webseite ein. Das neue ScriptRunner Portal Widget ist dafür perfekt geeignet.
Wenn wir die Codestücke in ScriptRunner zusammensetzen und die Schnittstelle für die IOBox mit dem Portal-Widget kombinieren, erhalten wir eine schöne Übersicht, wie in Abbildung 6 zu sehen ist … und den Rest sehen Sie im Demo-Video.
Abb. 6: Mit dem ScriptRunner-Portal-Widget können wir unseren Testaufbau nun bequem per PowerShell steuern
Wie Sie im Video sehr schön sehen können, haben wir uns mit wenigen Schritten eine eigene kleine weihnachtliche Kommandozentrale gebaut.
Wenn Sie dieses Projekt inspiriert hat, würden wir uns natürlich freuen, wenn Sie Ihre Ergebnisse mit uns teilen, z. B. auf Twitter unter dem Hashtag #merryscriptmas.
Viel Spaß beim Scripten & frohe Feiertage!
Okt 30, 2024 by Damian Scoles
MVP Damien Scoles berichtet über seine Erfahrungen mit Microsoft Graph. In seinem dritten Artikel geht er näher auf...
Okt 16, 2024 by Damian Scoles
Wie unterscheidet sich die Exchange Online-Administration mit dem Microsoft Graph PowerShell-Modul vom herkömmlichen...
Okt 8, 2024 by Damian Scoles
Die ein oder andere Hürde steht Nutzern im Weg, wenn sie anfangen Graph zu nutzen. In drei Teilen liefert Damian Hilfe....
Bruno Buyck ist der Gründer von Trouble Shooter, einem Unternehmen, das sich auf PowerShell-Automatisierung spezialisiert hat. In den letzten zehn Jahren hat Bruno Workshops zur Verwaltung und Automatisierung von Systemen mit PowerShell gehalten. Er hat Hunderte von Scripten in Produktionsumgebungen laufen, was zu über 34 Millionen Scriptausführungen pro Jahr führt. Er liebt es, zu lehren und zu beweisen, dass PowerShell "What The Fuck" ist.