PowerShell zentral managen: So gelingt’s in 5 Schritten
Author: Heiko Brenn, Head of International Business | Lesezeit: 3 Minuten | Category: Automation, Delegation, PowerShell & Systeme, Scripting, Security
PowerShell-Scripte sollen Administratoren eigentlich bei ihrer Arbeit entlasten. Eigentlich – denn manchmal stehen sie vor Hürden, die den Effekt der Effizienz nicht eintreten lassen wollen. Eine Herausforderung ist dabei u.a., dass PowerShell ursprünglich als Einzelplatz-Lösung für Administrationsexperten mit Scripting-Erfahrung konzipiert wurde. Wir zeigen, wie die Zentralisierung gelingt und Sie mit PowerShell mehr Zeit sparen.
IT-Administratoren, die bereits auf PowerShell setzen, sind nicht immer vor Schwierigkeiten gefeit. So fehlt oftmals der Überblick darüber, wann ein Script das letzte Mal ausgeführt wurde und von wem. Zudem können wiederkehrende Aufgaben nicht delegiert werden, weil beispielsweise für Exchange-Aufgaben keine Admin-Rechte vergeben werden dürfen oder weil nur wenige Personen im Unternehmen PowerShell wirklich beherrschen. Je mehr Maschinen zudem im Spiel sind, auf denen PowerShell-Module installiert und gewartet werden müssen, desto unübersichtlicher wird die Arbeit.
Die Antwort auf diese und weitere Herausforderungen kann nur „Zentralisierung“ lauten. Dabei sollten sich Administratoren bzw. IT-Abteilungen alles, was mit PowerShell derzeit umgesetzt wird näher ansehen, und sich überlegen wie dies zentral abgebildet werden kann. Dieser Aufwand lohnt sich, denn schon nach kurzer Zeit, werden Sie mit PowerShell mehr erreichen. Welche Gründe sprechen nun für die Bündelung aller PowerShell-Aktivitäten?
1. Standardisierung
Wiederkehrende, gleichartige Aufgaben immer in der gleichen Weise erledigen, das ist das Ziel der Standardisierung. Dazu gehört z.B., dass alle Prozesse mit den identischen, jeweils aktuellen Scripten und PowerShell Modulen durchgeführt werden.
2. Zusammenarbeit
Wenn Standards festgelegt sind, können Scripte problemlos im Team bzw. in mehreren Teams entwickelt und gepflegt werden. Neue Scripte lassen sich einfach zu einem zentralen Repository hinzufügen.
3. Kontrolle
Zentralisierung ermöglicht auch eine einfache Nachvollziehbarkeit aller PowerShell-Aktivitäten. Wer hat beispielsweise wann welche Scripts mit welchem Ergebnis ausgeführt? Diese Frage ist kann mit Hilfe zentraler Prozesse schnell beantwortet werden.
4. Sicherheit
Die zentrale Verwaltung der Credentials spielt für die sichere Verwendung von PowerShell ebenso eine Rolle wie die unkontrollierte Vergabe von privilegierten Berechtigungen an Benutzer.
5. Delegation
Durch Zentralisierung wird dafür gesorgt, dass die Ausführung von Scripten nicht nur im Expertenkreis, sondern auch durch Help-Desk Benutzer oder Usern aus Fachbereichen ermöglicht werden kann. Gerade bei wiederkehrenden Aufgaben ist das eine enorme Entlastung.
6. Automation
PowerShell Scripte mit den richtigen Parametern automatisch durch Dritt-Systeme triggern, auch das ist mit der Zentralisierung einfach umzusetzen. So können beispielsweise Monitoring- oder Workflow-Systeme in einen voll-automatischen Ablauf integriert werden.
Nun, da das „Warum“ geklärt ist, stellt sich die Frage: Wie kann das Ganze umgesetzt werden? Im Folgenden beschreiben wir die Vorgehensweise in fünf Schritten mit Hilfe von ScriptRunner.
1. Zentralisierung der Scripte
Bei der Zentralisierung der Scripte geht es zunächst um die Speicherung aller PowerShell Scripte in einer gut strukturierten Art und Weise. Dies kann nach Zielsystemen wie Exchange, Office 365 oder Azure geschehen oder nach Zielgruppen wie Helpdesk oder End-Benutzer.
Die Ordnerbezeichnungen stellen übrigens automatisch Tags dar, über die später Scripte einfach gefiltert werden können. Neben den Scripten, sind auch PowerShell Module Teil der Zentralisierung. So sind die Module für Office 365 oder Azure genau einmal zentral zu installieren. Danach stehen die Funktionen für alle Aktivitäten zur Verfügung.
2. Zentralisierung der Credentials
Zur Verwendung von PowerShell Scripten sind in der Regel Credentials erforderlich. Liegen diese zentral im Credential Store des Servers oder werden von einem Passwort-Server bereitgestellt, steht der zentralen Ausführung nichts mehr im Wege. Als Passwort-Server können Lösungen von CyberArk, Pleasant und Thycotic zum Einsatz kommen. Je nach Zielsystem können natürlich unterschiedliche Credentials verwendet werden. Zur Umgehung von möglichen Limitierungen was die Anzahl paralleler Sessions angeht, sind auch mehrere Credentials für ein Target (z.B. Office 365) verwendbar.
3. Berechtigungen
Beim Einsatz von ScriptRunner werden alle PowerShell Scripte durch den ScriptRunner Dienst ausgeführt. Dieser verwendet die hinterlegten Benutzer- und Passwort-Informationen für die jeweiligen Zielsysteme. Als Benutzer kommen hier typischerweise Service-Accounts zum Einsatz. Damit können nun beispielsweise Helpdesk-User Scripte ausführen ohne, dass diese privilegierten Berechtigungen auf Systemen wie Exchange, Sharepoint oder Azure benötigen. D.h. ein Benutzer, der einfacher Domänen-Benutzer ist, kann punktuell freigegebene PowerShell Scripte ausführen, um z.B. in Exchange eine Abwesenheitsbenachrichtigung für Kollegen einzurichten oder ein Benutzerkonto zu entsperren.
Die Administration erfolgt mit der Web-Anwendung, der Admin App. Hier werden Targets konfiguriert und mit den passenden Credentials verknüpft.
4. Ausführen und Überwachen von PowerShell-Scripten
Bei der zentralen Ausführung von PowerShell Scripten durch ScriptRunner stehen verschiedene Optionen zur Verfügung.
- Manuelle Ausführung durch einen Benutzer der Delegate App
- Zeitgesteuert für Aufgaben wir regelmäßiges löschen von Log-Dateien
- Automatisch Event-getriggert durch Dritt-Systeme
Jede Ausführung eines Scriptes wird detailliert protokolliert. Das ScriptRunner Dashboard zeigt eine Übersicht aller Aktivitäten sowie etwaige Probleme bei der Verarbeitung an. Über Filter-Funktionen lassen sich Informationen über dedizierte Aktionen oder Zielsysteme einfach auswerten und vergleichen.
Damit Benutzer Aufgaben einfach erledigen können, steht die Delegate App zur Verfügung. Über eine komfortable Web-Oberfläche werden die Eingabefelder bereitgestellt, welche zur Ausführung notwendig sind. Die dynamische Web-Oberfläche wird dabei automatisch durch die ScriptRunner Lösung generiert. D.h. eine manuelle Programmierung einer Benutzeroberfläche gehört damit der Vergangenheit an.
Ein Beispiel: Out-of-Office-Einstellungen. Das Target „Exchange“ ist gekoppelt mit dem Credential und verbunden mit einer Query – alles an einer Stelle. Wird nun die Aufgabe gestartet, werden alle Funktionen und Inputfelder angezeigt, die im Script hinterlegt wurden. So kann ausgewählt werden, für den Out-of-Office eingerichtet werden soll, für welchen Zeitraum etc. Soll der Prozess automatisiert werden, kann dies übrigens einfach mit Hilfe der ScriptRunner WebService Connectoren erledigt werden.
5. Delegieren der PowerShell-Ausführung
Sollen nun User des Helpdesks oder andere Nutzer Scripte ausführen, können diese mit der Admin App delegiert werden. Die Ausführung erfolgt dann über die Delegate App. Benutzer sehen die ihnen zugewiesenen Aktionen und starten diese durch Klicken auf die jeweilige Kachel in der Web-Oberfläche. Welche Eingabe-Felder für eine Aktion angezeigt werden oder vorab bereits automatisch befüllt sind, ist frei konfigurierbar. Für die Ausführung ist keinerlei PowerShell-Wissen erforderlich, ebenso wenig wie der privilegierte Zugriff auf Backend-Systeme. Häufig verwendete Aktionen wie das Zurücksetzen eines Passworts o.ä. können als Favoriten gekennzeichnet werden, und stehen damit direkt nach dem Start der Delegate App zur Verfügung.
Fazit
Mittels Zentralisierung wird PowerShell zu einem Werkzeug, dass nicht mehr nur von PowerShell-Experten verwendet werden kann. Damit können viele Aufgaben sicher und einfach von der IT-Administration an Helpdesk Teams und End-Benutzer delegiert werden. Dies sorgt für Entlastung der Sysadmins und eine Verbesserung und Beschleunigung vieler IT Prozesse.
Diese Beiträge könnten Sie auch interessieren:
Produkt
Lösungen
Ressourcen
Kontakt
ScriptRunner Software GmbH
Ludwig-Erhard-Straße 2
76275 Ettlingen
Deutschland