• Blog
  • Webinare
  • Partner
  • Support
  • Kontakt
  • DE
    • EN
ScriptRunner
  • Über uns
    • Team
    • Jobs
    • Presse
  • Warum
  • Praxisbeispiele
  • Software
    • ScriptRunner Server
    • ScriptRunner Web Apps
    • ScriptRunner Connectoren
    • ScriptRunner ActionPacks
  • Jetzt testen
  • Suche
  • Menü Menü
Du bist hier: Startseite1 / ScriptRunner Blog2 / News3 / Weihnachts-Spaß mit PowerShell und ScriptRunner

Weihnachts-Spaß mit PowerShell und ScriptRunner

Author: Bruno BuyckLesezeit: 5 Minuten Category: News, Scripting

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!

Inhalt

  • 1. Hardware-Voraussetzungen
  • 2. Vorbereitung der Rest-API
  • 3. Auslesen der Ausgänge
  • 4. Einstellen der Ausgänge
  • 5. Showtime!
  • Das Video
Artikel: Weihnachts-Spaß mit PowerShell und ScriptRunner

1. Hardware-Voraussetzungen

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):

  1. Xmas Tree
  2. Disco Light
  3. Santa Claus

Ausgang #4 wurde für unser Projekt nicht verwendet.

Screenshot: Webinterface der NETIO-4C-PDU

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:

Foto des Testaufbaus, das die pdu-Box, eine LED-Weihnachtsdekoration, eine LED-Diskokugel und eine elektrische Weihnachtsmannpuppe zeigt

Abb. 2: Der Versuchsaufbau

2. Vorbereitung der Rest-API

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:

  • BASE-URI
  • ENDPOINT
  • ACTION (get, post, put, merge, delete,….)

Erläutern wir dies anhand eines kurzen PowerShell-Beispiels:

In diesem Fall ist die Action GET, die Base-uri ist http://api.trouble-shooter.be 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).

Screenshot: PowerShell Ausgabe des oben genannten Befehls

Abb. 3: Liste der James Bond-Filme, die mit PowerShell über eine REST-Api abgerufen wird

3. Auslesen der Ausgänge

Sie benötigen einige Informationen, um mit der Scripterstellung zu beginnen:

  • Hostname/IP Ihrer Box
  • Credentials
  • Base-URI und Endpoint
Screenshot: PowerShell Ausgabe der Variablen $io_box

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:

Screenshot: ScriptRunner Admin App

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:

  • Credentials, durch Verwendung des Typs System.Management.Automation.PSCredential (die eingebaute Credential-Verwaltung von ScriptRunner kann verwendet werden)
  • IP, durch Verwendung des Typs ipaddress wird eine eingebaute Validierung durchgeführt
  • Der Ausgang, der von 1 bis 4 begrenzt ist, da wir 4 Ausgänge zur Verfügung haben

4. Einstellen der Ausgänge

Die folgenden Parameter sind erforderlich, um den Ausgangszustand festzulegen:

  • HostName, URI und Endpunkt Ihrer Box
  • Credentials
  • Ein Body im JSON-Format, der die Ausgangsdefinition enthält:
    • ID, die die Nummer des Ausgangs darstellt (1-4)
    • Action, die den gewünschten Zustand darstellt (0 = Aus, 4 = Ein)

Wenn wir dieses Stück Code in eine nette Funktion verpacken, sieht das folgendermaßen aus:

5. Showtime!

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.

Screenshot: Übersicht der NETIO-Ausgänge in der Weboberfläche neben der ScriptRunner-Aktion, die zur Steuerung des Versuchsaufbaus verwendet wird

Abb. 6: Mit dem ScriptRunner-Portal-Widget können wir unseren Testaufbau nun bequem per PowerShell steuern

Das Video

https://www.scriptrunner.com/wp-content/uploads/2020/12/attempt_104.mp4

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!

Weiterführende Links

  • PowerPDU 4C NETIO products a.s.
Share this article
  • Teilen auf Facebook
  • Teilen auf Twitter
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
  • Teilen auf Reddit
  • Per E-Mail teilen

Diese Beiträge könnten Sie auch interessieren:

Artikelbild: PowerShell AliasingScriptRunner Software GmbH

PowerShell-Aliasing

2. Dezember 2020
Weiterlesen
https://www.scriptrunner.com/wp-content/uploads/2020/11/powershell-aliasing.png 1000 1000 Marco Kamner https://www.scriptrunner.com/wp-content/uploads/2018/05/ScriptRunner_Logo_RGB-300x45.png Marco Kamner2020-12-02 10:00:122021-01-07 16:34:30PowerShell-Aliasing
Erweiterte Funktionen in PowerShellScriptRunner Software GmbH

PowerShell Erweiterte Funktionen

21. Oktober 2020
Weiterlesen
https://www.scriptrunner.com/wp-content/uploads/2020/10/Advanced-posh-functions-1.jpg 500 500 Sunny Jamwal https://www.scriptrunner.com/wp-content/uploads/2018/05/ScriptRunner_Logo_RGB-300x45.png Sunny Jamwal2020-10-21 10:00:222021-01-07 17:05:05PowerShell Erweiterte Funktionen
Artikel: Erste Schritte mit PowerShell-RemotingScriptRunner Software GmbH

Erste Schritte mit PowerShell-Remoting

14. Oktober 2020
Weiterlesen
https://www.scriptrunner.com/wp-content/uploads/2020/10/18_Zeichenfläche-1.png 1000 1000 Adam Bertram https://www.scriptrunner.com/wp-content/uploads/2018/05/ScriptRunner_Logo_RGB-300x45.png Adam Bertram2020-10-14 10:00:432021-01-07 17:06:09Erste Schritte mit PowerShell-Remoting

 

Über den Autor:

Bruno Buyck

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 Buyck Workshops zur Verwaltung und Automatisierung von Systemen mit PowerShell durchgeführt. Er lässt hunderte von Skripts in Produktionsumgebungen ausführen, was zu über 34 Millionen Skriptausführungen pro Jahr führt. Er findet es fantastisch zu beweisen, dass PowerShell atemberaubend und „What the Fuck“ ist.

Neuste Beiträge

  • Article: Using PowerShell to Create New Citrix MCS MachinesScriptRunner Software GmbHErstellen neuer Citrix MCS-Maschinen mit PowerShell15. Dezember 2020 - 16:24
  • Artikel: Einführung in PowerShell in Citrix Virtual Apps and DesktopsScriptRunner Software GmbHEine Einführung in PowerShell in Citrix Virtual Apps and Desktops10. Dezember 2020 - 12:05
  • Artikelbild: PowerShell AliasingScriptRunner Software GmbHPowerShell-Aliasing2. Dezember 2020 - 10:00
  • Artikelbild: ScriptRunner sponsert Scottish Summit 2021ScriptRunner Software GmbHScriptRunner sponsert den Scottish Summit 202125. November 2020 - 10:00
  • Das neue rollenbasierte ScriptRunner PortalScriptRunner Software GmbHDas neue ScriptRunner Portal – aus drei mach eins19. November 2020 - 10:00

Produkt

  • ScriptRunner Plattform
  • ScriptRunner ActionPacks
  • ScriptRunner Server
  • ScriptRunner Apps
  • ScriptRunner Connectoren
  • Lizenzierung
Jetzt kostenfrei testen

Lösungen

  • IT-Administratoren
  • IT-Teamleiter
  • Use Cases

Ressourcen

  • Blog
  • Dokumentation
  • Knowledge Base
  • Webinare
  • PowerShell-Lexicon
  • PowerShell-Poster
  • PowerShell Security Ebook

Unternehmen

  • Über uns
  • Team
  • Jobs
  • Presse
  • Referenzen
  • Partner

Kontakt

ScriptRunner Software GmbH
Ludwig-Erhard-Straße 2
76275 Ettlingen
Deutschland

T: +49 7243 20715-0
M: info(at)scriptrunner.com

Demo vereinbaren
© ScriptRunner Software GmbH is a subsidiary of AppSphere AG
  • LinkedIn
  • Xing
  • Twitter
  • Facebook
  • Youtube
  • Impressum
  • Datenschutz
  • Newsletter
Nach oben scrollen