Fachartikel

Seite 2 - Automatisierung mit der PowerShell

Die PowerShell als Grundlage für IT-Automation
Die Evolution der PowerShell im täglichen Einsatz ist in den letzten Jahren sichtbarer geworden. Nachdem immer mehr Admins der täglichen Klickorgien leid waren, konnten sie mit der PowerShell Cmdlets viele Aufgaben auf der Kommandozeile ausführen – immer mehr davon gibt es sogar nur noch dort. Um Aufgabenstellungen in ihrer Gesamtheit besser abbilden zu können, bot sich in einem nächsten Schritt die Verwendung von PowerShell-Skripten an. Auch diese werden auf der Kommandozeile gestartet, heute oftmals noch lokal, nachdem sich der Administrator per RDP auf das System verbunden hat. Ein weiterer evolutionärer Schritt ist die Verwendung von PowerShell-Remoting. Somit lassen sich Befehle und Skripte auf entfernten Zielsystemen ausführen, ohne sich erst dort am System einloggen zu müssen.


Bild 3: Die Ziele einer Automation mit der PowerShell und die Schritte, die dorthin führen.

Die PowerShell eignet sich vor diesem Hintergrund perfekt für den Bottom-Up Ansatz, weil Admins damit:

  • für ihre tägliche Arbeit schnelle Verbesserungen und Ergebnisse erzielen
  • schrittweise persönliche Erfahrungen sammeln können
  • es ein kostengünstiger und wenig komplexer Einstieg ist
  • nicht jeder Admin sofort zum PowerShell-Profi werden muss

Jeder der genannten Punkte ist eine Voraussetzung und notwendige Erfahrung für eine spätere Automation mit PowerShell. Essenziell für die eigentliche Automation im IT-Betriebsteam sind dann die weiteren Fragestellungen:

  • Wie verwenden Administratoren die Skripte im Team?
  • Wie lässt sich eine zentrale Bereitstellung der Skripte sicherstellen?
  • Wer darf wann und wie welche Skripte auf welchen Systemen ausführen? Wie wird sichergestellt, dass die Skripte nur kontrolliert, richtliniengesteuert und jederzeit sicher auf den Zielsystemen verarbeitet werden?
  • Wie transparent ist das Ganze? Wo und wie erfolgt ein zentrales Reporting und welche Audit-Möglichkeiten sind notwendig?
  • Wie soll der Entwicklungs- und Testprozess für Skripte aussehen und wie lässt er sich im Betrieb etablieren?
In diesem Kontext könnte zum Beispiel die sicheren Delegation von Aufgaben eine der ersten Stufen für eine Automation mit der PowerShell sein.
Beispiel User Provisioning
User Provisioning bedeutet vereinfacht, Benutzerkonten in der IT-Infrastruktur und in Unternehmensanwendungen automatisch zu erstellen, zu ändern, zu deaktivieren und zu entfernen. Gleichzeitig sollen dabei auch die passenden Berechtigungen vergeben oder entzogen werden. Die Verwaltung von Benutzerkonten und Berechtigungen ist erfahrungsgemäß zeitraubend. Aber nicht nur das. Auch die Delegation der damit verbundenen Aufgaben etwa an den Service Desk stellt eine Herausforderung dar.

Um eine sichere Delegation zu ermöglichen, können zum Beispiel das Active Directory (AD) und Exchange mit Role Based Access Control (RBAC) versehen werden. Anschließend erfolgt dann eine Schulung der Service-Desk-Anwender für zwei administrativen Werkzeugen, die AD User und Computers Console sowie die Exchange Management Console. Das ist jedoch relativ aufwändig und auch unter Sicherheitsgesichtspunkten ist nicht unproblematisch. So etwa sieht ein wirksames Sicherheits-Schalenmodell einen direkten Zugriff von Service-Desk-Mitarbeitern auf zentrale Systeme gar nicht vor. Die Zugriffe erfolgen stattdessen immer indirekt, kontrolliert und überwacht.

Sehen wir uns dazu ein konkretes Beispiel an: Es soll ein neuer Benutzer im AD sowie eine Mailbox angelegt, der Zugriff auf Dateien und Drucker berechtigt, die Verteilerlisten aktualisiert und eine erste Mail mit weiteren Informationen versendet werden. Im klassischen Click, Copy & Paste erwarten den  Administrator eine Fülle von Fenstern, Tabs und Clicks. Reproduzierbarkeit und Nachvollziehbarkeit sind nicht wirklich gegeben, die Fehleranfälligkeit ist hoch, der Zeitaufwand entsprechend auch.

Nachdem ein Administrator erste Erfahrungen mit PowerShell-Befehlen gemacht hat, könnte ein Skript entstehen, das die Einzelaufgaben bündelt. Der Einsatz des Skripts auf der PowerShell Console führt nun zu einer höheren Reproduzierbarkeit mit deutlich weniger Fehlern, ein Logging verbessert auch die Nachvollziehbarkeit. Der Zeitaufwand sinkt merklich. In einem nächsten Schritt könnte der Administrator nach den guten Erfahrungen die Skriptanwendung im Team teilen. Er stellt das Skript allen zur Verfügung. Außerdem erklärt sich ein Mitarbeiter aus dem Service Desk bereit, am Experiment mit dem User-Provisioning-Skript teilzunehmen. Nach kurzer Zeit stellen sich jedoch gravierende Probleme ein:

  • Es gibt unterschiedliche Versionen des Skripts, weil einige Kollegen persönliche Anpassungen vorgenommen haben.
  • Die Ausführung und Ergebnisse der unterschiedlichen Skripte ist nicht mehr reproduzier- und vergleichbar.
  • Die Ausführung der Skripte in der persönlichen PowerShell Console verhindert eine einheitliche Protokollierung und damit Nachvollziehbarkeit.
  • Einige Kollegen im Team möchten das Skript zwar anwenden, fragen jedoch nach einer grafischen Eingabemaske, da sie die Befehlszeile und die vielen notwendigen Parameter für den Aufruf nicht immer sofort parat haben.
  • Bei der Anwendung des Skripts durch den Mitarbeiter im Service Desk stellt sich heraus, dass er zu viele administrative Berechtigungen bräuchte. Alternativ könnten diese Berechtigungen nur im Skript-Code hinterlegt werden. Eine viel zu hohes Sicherheitsrisiko.
  • Zu alledem wurde das Skript inzwischen weiterentwickelt und verbessert. Nötig wäre also ein Prozess, der Entwicklung, Test und Überführen von Skripten in die Produktion sicherstellt.
Bei genauer Betrachtung zeigen sich die zwei Seiten der Medaille: Auf der Pro-Seite ist zu vermerken, dass ein Anfang für die Automation gemacht ist und das PowerShell-Skript für das komplexe User Provisioning reproduzierbare Ergebnisse liefert. Die Kehrseite zeigt, dass die Anwendung der Lösung nur als Ein-Mann-Prozess reibungslos zu funktionieren scheint. Die Verwendung im Team scheitert an organisatorischen und technischen Hürden, an eine sichere Delegation ist nicht zu denken.

Der Administrator könnte in einem nächsten Schritt versuchen, die Skripte auf einem gemeinsamen Verzeichnis zu speichern. Die Erfahrungen sind aber oft eher schlecht, die Anzahl der persönlichen Varianten nimmt meist nicht wirklich ab. Auch um professioneller entwickeln zu können, fällt die Entscheidung häufig zugunsten Visual Studio Code mit einem zentralen Git. Versucht ein Administrator, mit Bordmitteln auch grafische Benutzerelemente für seine Kollegen zu implementieren, stellt er meist fest, dass das viel zu kompliziert ist und sich die Erfordernisse für den Service Desk darüber hinaus so nicht erfüllen lassen.

Stattdessen müsste er jetzt kompilierte EXE-Dateien an die einzelnen Mitarbeiter verteilen. Deren Ausführung verlangt allerdings die gleichen administrativen Rechte und Randbedingungen wie ein Skript. Außerdem lassen sich die Skripte immer noch nicht zentralisiert ausführen. Die Ausführungsberechtigungen stellen weiterhin ein Problem dar, ein zusammenhängendes und übergreifendes Reporting ist mit den verteilten Logdateien nicht handhabbar. Eine Richtlinienvorgabe, welches Skript wie und wo ausgeführt werden soll, ist unmöglich.

   Seite 1: Zwei Strategien zur Automation
   Seite 2: User Provisioning als Beispiel für Automation
   Seite 3: Komponenten einer Automationslösung

<< Vorherige Seite Seite 2 von 3 Nächste Seite >>
2.05.2018/ln/Frank Kresse, Head of Products Division bei der AppSphere AG
und Entwickler von ScriptRunner.

Nachrichten

Microsoft holt versenktes Rechenzentrum hoch [17.09.2020]

Vor ein paar Wochen bargen Marinespezialisten vor den schottischen Orkney-Inseln einen riesigen Metall-Zylinder, der dicht mit Algen, Seepocken und Seeanemonen bewachsen war. Die Bergung des vor zwei Jahren versenkten Unterwasser-Rechenzentrums von Microsoft war der Start zum Endspurt des Projektes, das nun gezeigt hat, dass Unterwasser-Datenzentren möglich sind. [mehr]

Durchsatzstarker Storage [8.09.2020]

Hewlett Packard Enterprise bringt die sechste Generation seines Einstiegs-Speichersystems "HPE Modular Smart Array" auf den Markt. Diese kommt mit einer neuen Hard- und Software-Architektur, die unter anderem deutlich mehr Leistung als die Vorgängergeneration verspricht. [mehr]

Fast geräuschlos [25.08.2020]

Tipps & Tools

Retro-Konsole zum kleinen Preis [20.09.2020]

Viele nicht mehr ganz junge Admins sind noch in der Zeit von Videogames der 80er- und 90er-Jahre aufgewachsen. Wer eine Reise in die Vergangenheit unternehmen will, sollte sich das nette Gadget der MGT-Spielekonsole näher ansehen. Der Retro-Videocontroller arbeitet auf Basis von 16-Bit-Technologie und bringt Games alter Machart zurück. Sie müssen das Zubehör lediglich per AV-Kabel mit dem Fernseher verbinden und schon kann es losgehen. [mehr]

Download der Woche: RAMExpert [16.09.2020]

Beim Upgrade von alten Rechnern kann ein Aufrüsten des Arbeitsspeichers Wunder bewirken. Wichtig ist dabei, dass das RAM-Modul auch mit dem Mainboard und bestehenden Speicher-DIMMS kompatibel ist. Hier hilft das kostenlose Werkzeug "RAMExpert", das Ihnen die entscheidenden Infos zum verbauten Arbeitsspeicher anzeigt. [mehr]

Buchbesprechung

Microsoft Office 365

von Markus Widl

Anzeigen