Gruppenrichtlinien sind ein wunderbares Werkzeug um Aufgaben innerhalb der Domäne zu planen.
Diese können auch zur Automatisierung von Standardaufgaben verwendet werden.
In diesem Artikel erfahren Sie wie ein Framework Ihnen dabei helfen kann, dies für Ihre tägliche Arbeit zu nutzen.
Damit können Sie entspannt sich um die wirklich wichtigen Dinge in IT Projekten und der täglichen Administration kümmern.
Inhaltsübersicht
Einleitung
Ein Rahmengerüst, auch Framework genannt, kann Ihnen helfen die täglichen Tätigkeiten zu automatisieren.
Dies spart Ihnen und Ihrem Team nicht nur wertvolle Arbeitszeit, sondern hilft Fehler der Administration durch standardaufgaben zu reduzieren.
Im Microsoft Windows Umfeld bietet sich für Administration die Windows PowerShell als Lösung an. Die nachfolgenden Strukturen basieren auf PowerShell und mittels Gruppenrichtlinien geplanten Aufgaben um das Leben als Systemadministrator zu erleichtern.
Framework für geplante Aufgaben (TaskRunner)
Mit dem nachfolgenden Framework wird ein Rahmen geschaffen, welcher unternehmensweit auf allen Endgeräten und Servern verwendet werden kann.
Logischer Skriptaufbau
Skripte haben generell die schlechte Eigenschaft, auch mal einfach so durch Programm- oder Eingabefehler beendet zu werden. Sie springen dann mit einem Exit Code aus der Verarbeitung. Diese nachzuverfolgen – zu Debuggen – ist macht die Hauptarbeit in der täglichen Erstellung von Skripten aus. Daher wird das nachfolgende Skript mit einem zusätzlichen Rahmen versehen, welcher auf diese Exit Codes reagieren kann.
Die Programmlogik als Nassi-Shneiderman-Diagramm:
TaskRunner als Rahmen
Im TaskRunner wird der Rahmen für die Ausführung der eigenen als auch der TaskWorker Befehle geschaffen.
Prüfung der TaskRunner Konfiguration (CheckConfig)
- Es wird auf das Vorhandensein der Konfig Datei als auch auf die darin enthaltenen notwendigen Parameter geprüft. Sollte einer nicht gefüllt sein oder die dahinterliegende Datei/Verzeichnis nicht zugreifbar sein, wird beendet.
- Damit wird sichergestellt, dass für die erste Ausführung alle Parameter als auch Dateien verfügbar sind.
Prüfung für Dateien (CheckFiles)
- Datei für Funktionen
- Logikprüfung der Funktionsdatei auf Klammerfehler etc. welche die Einbindung dieser unmöglich machen würde
- Datei für TaskWorker
- Logikprüfung der Ausführbaren Datei für den TaskWorker, sodass bekannten Probleme wie Zugriffs- oder Skriptfehler vermieden werden
- Zusätzliche Dateien
- Prüfung der zusätzlich im TaskRunner angegebenen Dateien auf Existenz.
Dateien holen (getFiles)
- Sofern eine Prüfung nicht erfolgreich war, werden via COPY, FTP oder WebDAV die Quelldateien des TaskRunners lokal geladen.
- Nach dieser Ausführung ist i. d. R. alles für die nächste Ausführung vorhanden, sodass der TaskWorker gestartet werden könnte.
Ausführungsüberprüfung (CheckExitCodes)
Die Prüfung der Exit Codes stellt einen doppelten Boden dar. Sofern bei der Ausführung etwas nicht ordnungsgemäß gelaufen ist, wird ein Report via Ticket System oder E-Mail erstellt werden.
Im TaskRunner eingebettete Funktionen
- Report2Admin
- Diese Funktion stellt sicher, dass erstellte Logdateien im Logverzeichnis an den Administrator des Skripts als E-Mail gesendet werden.
- Sollte keine E-Mail gesendet werden können, werden die Logdateien ins Archiv gepackt und somit aufbewahrt
- Report
- Je nach Konfiguration erfolgt die Erstellung eines Tickets im Tickt System (API) oder eine Benachrichtigung der vordefinierten E-Mailadresse mit den Ergebnissen der Ausführung.
Parameterdateien zur Konfiguration des TaskRunners
Es wurde beim TaskRunner bewusst auf eine Parameterdatei verzichtet.
Die Notwendigen Parameter und Funktionen wurden innerhalb eines großen PowerShell PS1 Skripts zusammengefasst.
Dies ermöglicht eine einfache Portabilität des Skripts, was z. B. die Ausbringung über Gruppenrichtlinien vereinfacht. Die Parameter wurden logisch an den Anfang des TaskRunners gestellt, sodass mit Hilfe des Rahmenwerks, schnell eine neue Aufgabe erledigt werden kann.
Zusätzliche Skriptfunktionen
Das Skript wurde über die Einsatzbereiche hinweg mehr und mehr um zusätzliche Funktionen erweitert.
Online und offline Funktionalitäten
Viele Aufgaben müssen Online – also im Verbund mit dem Active Directory ausgeführt werden. Betrachtet man jedoch die Verwaltung lokaler Benutzeraccounts auf Notebooks, so müssen diese auch im Homeoffice oder unterwegs ausgeführt werden. Hierzu wurden Offline Fähigkeiten integriert, welche eine Asynchrone Rückmeldung bei getrennter Netzwerkverbindung ermöglichen. Entsprechende Reports werden dann bei nächster Ausführung des TaskRunners und gleichzeitiger Verfügbarkeit der Domänenanbindung zum Server oder Ticketsystem zurückgemeldet.
Kommunikation via Webservice
Die anfänglich lediglich über CIFS verteilten Dateien, wurden auf eine Übertragung mittels Webservice umgestellt. Damit sind Login und Dateiübertragungen gesichert via HTTPs über das Internet möglich. Entsprechende DNS Einstellungen und Netzwerkstrukturen voraussetzend, können große Umgebungen damit intern als auch extern vollständig kontrolliert Aufgaben auf Endgeräten und verteilten Servern umsetzen.
Archiv Upload
Damit die lokal erstellten Archivverzeichnisse in großen Infrastrukturen zentralisiert werden können, wurde eine Funktion für den Archiv Upload erstellt. Nach entsprechendem Upload via SMB oder Webservice werden diese auf dem Endgerät nach einer angegebenen Anzahl an Tagen gelöscht. Damit ist zudem ein Überlaufen der lokalen Festplatten nicht mehr möglich.
TaskWorker als ausführender Benutzer
Die Zuvor in der Konfiguration angegebene Worker Datei wurde bereits mit getFiles() geladen und kann ausgeführt werden. Darin können einfache Befehle oder vollständige Programme – je nach Anforderung – eingebettet werden.
Der TaskWorker hat dabei Zugriff auf die vom TaskRunner bereitgestellten Funktionen und kann damit sowohl eigene weitere Dateien nachladen, als auch Reports via E-Mail oder Ticket API zurückmelden.
Weitere Details und bereits umgesetzte Lösungen werden im Punkt “Praktische Beispiele aus dem IT Alltag” beschrieben.
Verzeichnisstruktur für das Framework
Strukturierte Skripte funktionieren am besten, wenn klare Vorgaben für eine Ordnerstruktur existierten.
Damit lokal auf dem Computer die Funktionen, Tools und Log-Dateien verfügbar gemacht werden können, ist eine Verzeichnisstruktur notwendig. Im Microsoft Windows Umfeld hat sich hierzu das Verzeichnis C:\ProgramData bewährt. Dieses Verzeichnis ist durch Microsoft ausreichend geschützt. Bei Ausführung des TaskRunners als Systemkonto können dadurch sowohl Modifikationen am Benutzer selbst, als auch Anpassungen am Betriebssystem erfolgen.
- Skript-Verzeichnis
Bei der ersten Ausführung prüft der TaskRunner sein Arbeitsverzeichnis. Sofern dieses 01-Script ist, werden darunter die weiteren Verzeichnisse erstellt. Im Script Verzeichnis liegen alle für den TaskRunner und TaskWorker notwendigen Dateien und Funktionen.
- Input-Verzeichnis
Das Input Verzeichnis wird für die empfangenen Dateien verwendet. So kann im Rahmen des TaskWorkers ein empfangen von Befehlen und Parametern realisiert werden. Diese sind z. B. notwendig, wenn es um die Umbenennung von Benutzern im Active Directory oder auch die Installation eines Update Pakets geht.
- Working-Verzeichnis
Im Arbeitsverzeichnis werden aktuelle Protokolle und Temporären Dateien gespeichert. Dieses Verzeichnis wird vollständig für den Worker verwendet.
Daher wird dieses auch durch den TaskRunner initial bei jeder Ausführung ins Archiv gepackt und geleert. Dies erleichtert das initiale Debugging beim Ausbringen einer Aufgabe.
- Archiv-Verzeichnis
Dieses enthält alle Protokolle der letzten Ausführungen und wird als Dokumentationsverzeichnis verwendet.
Umsetzung im Active Directory
Innerhalb von Domänen kann der zuvor beschriebene TaskRunner unkompliziert und automatisiert ausgebracht werden.
Zentraler Aufgabenserver
Ähnlich wie Domänencontroller sollte ein zentraler Aufgabenserver für die Verteilung der Aufgaben verwendet werden. Eine parallele Nutzung eines Domänencontrollers stellt in kleinen Umgebungen jedoch kein Hindernis dar.
Die initiale Bereitstellung kann über eine freigegebene Datei im Netzwerk oder mithilfe einer in eine GPO eingebetteten Datei erfolgen.
Die initiale Ausführung kann dabei als Start-Skript für Computer oder über einen via Gruppenrichtlinien geplanten Task erfolgen.
Dateifreigaben
Für die Bereitstellung von zusätzlichen Dateien und Tools können Dateifreigaben das Mittel der Wahl sein. Diese können über NTFS oder Freigaberechte so eingeschränkt werden, dass lediglich die notwendigen Benutzer und der TaskRunner als Geplante Aufgabe darauf Zugriff haben.
Webservice
Die Kommunikation mit einem Webservice kann nach der initialen Ausbringung des TaskRunners für weitere Dateiupdates als auch zur Kommunikation und Datenübertragung mi dem TaskRunner verwendet werden. Dadurch wird es möglich eine gesicherte Kommunikation über das Internet herzustellen.
Start-Skript zur Ausbringung
<Gruppenrichtlinien -> Computerkonfiguration -> Startup/Shutdown -> Scripts>
Durch das hinzufügen einer Datei incl. UNC Pfad, wird diese beim Starten oder Herunterfahren des Computers an der Domäne ausgeführt.
Die dabei verwendeten Rechte entsprechend die des Computerkontos, sodass die Gruppe der DOMÄNENCOMPUTER (engl. “Domain Computers”) darauf Zugriff haben muss.
Geplanter Task zur Ausbringung (RemoteUpdate)
<Gruppenrichtlinien -> Computerkonfiguration -> Systemeinstellungen -> Aufgabenplanung>
Hier können über Gruppenrichtlinien gesteuert geplante Aufgaben auf Computern eingeplant werden. Dabei stehen alle erweiterten Möglichkeiten zur Planung der Aufgabe zur Verfügung. Eine aus der Praxis relevante:
- Angabe des Ausführenden Benutzers
Dadurch können Aufgaben in einem speziellen Benutzerkontext gestartet werden. Dadurch können lokale Administratorkonten, als auch im Netzwerk befindliche System- und Dienstkonten mit individuellen Rechten verwendet werden.
- Angabe der Ausführungszeitpunkte
Durch die Angabe der Ausführungszeitpunkte können nach dem Systemstart eine verzögerte Ausführung, als auch eine Ereignisgesteuerte Ausführung realisiert werden.
- Wiederholungsintervalle
Je nach Art der TaskWorker Aufgabe, müssen Wiederholungen der Ausführung eingeplant werden. So können ggf. bei einer ersten Ausführung nicht alle Systemparameter oder Erfordernisse sichergestellt sein, welche z. B. durch eine zusätzliche Programminstallation erst bei der nächsten Ausführung sichergestellt sind.
Hier können auch regelmäßige Aufgaben wie Active Directory Reports o. ä. eingeplant werden, welche ein Management Review ermöglichen.
Das Remote Update als geplante Aufgabe stellt dabei sicher, dass immer die aktuellste Version der TaskRunner Aufgabe lokal verfügbar ist. Damit werden mögliche Manipulationen bei jeder Ausführung auf die vom Administrator bereitgestellte Version zurückgesetzt.
Geplanter Task zur Ausführung (localTask)
Die lokale Ausführung kann ähnlich wie das Remote Update als geplanter Task eingeplant werden. Vorteile der lokalen Ausführung sind die offline Fähigkeit als auch ein angepasster Benutzer- oder System-kontext zur Ausführung des Tasks.
Praktische Beispiele aus dem IT Alltag
Nachfolgend einige praktische Beispiele aus dem Alltag eines Windows Administrators, welche bereits mithilfe des zuvor vorgestellten TaskWorkers umgesetzt wurden.
Softwareausbringung & Betankung
Aus dem Bereich der Erstinstallation von Arbeitsstationen mittels Windows Deployment Services (via. PXE und Unattended Installation) einige Beispiele
- Initiale Softwarebereitstellung nach Installation
Unabhängig einer bereits verfügbaren Windows Store Anbindung, einer Client Management Software wie Empirum Worplace Management oder Windows Intune, können Softwarepakete wie Citrix Receiver, Microsoft Office, 7-ZIP oder ein SAP Client auf den Endgeräten ausgebracht werden. Dadurch lassen sich automatisch alle manuellen Tätigkeiten der Softwareinstallation von der Kommandozeile aus umsetzen.
- Initiale Windows Updates
Aufgabengesteuert werden Windowsupdates mittels PowerShell gestartet und das Betriebssystem incl. Software über Windows Update Server mit Sicherheitsupdates versehen. Selbständige Neustarts und erneute Prüfungen können beispielhaft wie in https://gallery.technet.microsoft.com/scriptcenter/Execute-Windows-Update-fc6acb16 durchgeführt werden, sodass das Endgerät vor der Auslieferung an den Benutzer alle Anforderungen für den täglichen Einsatz erfüllt.
- Bitlocker Aktivierung
Sofern für Compliance Anforderungen notwendig, kann sichergestellt werden, dass Bitlocker auf dem Endgerät aktiv ist. Mithilfe des TaskWorkers kann eine Umsetzung und Kontrolle von “ManageBDE” erfolgen.
Anpassung von Systemeinstellungen auf Endgeräten
Softwareupdates und Compliance Anforderungen machen es teilweise notwendig, Einstellungen im laufenden Betriebssystem durchzuführen. Wenn Gruppenrichtlinien und Registry Einstellungen an Ihre Grenzen stoßen, können diese durch den TaskWorker gestützt weitere Systemanpassungen durchführen.
- Hosts Datei
In einigen Umgebungen sind Anpassungen an Host Dateien notwendig um Datensicherungsserver, ERP Systeme oder nicht Domänenangehörige Verwaltungssysteme mittels Namen ansprechen und auflösen zu können. Lösungen zur zentralen Verwaltung von Hostdateien (vgl. https://gist.github.com/markembling/173887) können daher individuell und zeitaufwändig durch den Administrator lokal ausgeführt, oder mittels TaskWorker zentral gesteuert und verwaltet werden.
- Individualisierung von Einstellungen für Computergruppen
Wenn Arbeitsstationen nicht domänengebunden betrieben werden und dennoch eine zentrale Steuerungsinstanz notwendig ist, kann nach einer Erstinbetriebnahme des TaskRunners der TaskWorker über eine Internetanbindung zur Steuerung eingesetzt werden. Dies kann bei Autonomen Displays zur Präsentation aber auch zur Steuerung von Abgesetzten Überwachungssystemen in der Cloud verwendet werden um regelmäßig Dateiupdates durchzuführen oder ein BotNet zur ganzheitlichen Prüfung von externen Anmeldungen an der Unternehmensstruktur zu ermöglichen.
- Anpassung von lokalen Benutzerpasswörtern
Die Verwaltung von lokalen Benutzern und deren Passwörtern incl. Gruppenzugehörigkeiten ist eine Herausforderung. Individuelle Kennwörter für lokale Administratorkonten zu setzen und diese bei Notwendigkeit auch parat zu haben ist eine Aufgabe die der TaskWorker zu meistern versteht. So kann er regelmäßig das lokale Administrator Kennwort ändern, Gruppenmitgliedschaften prüfen und diese in eine zentrale IT Datenbank hochladen.
Damit haben zusätzliche Softwareinstallationen wie der IBM Battery Checker oder durch den Benutzer erstellte Administrative Benutzerkonten, keine Möglichkeit mehr als lokaler Administrator dauerhaft zu wirken und damit Angreifern ein vom Hersteller statisch in deren Software erstelltes administratives Benutzerkonto zu haben.
- Konformitätsprüfungen für Client und Server
Die Vorgabe einer regelmäßigen Prüfung von Endgeräten, wird häufig durch Compliance Abteilungen vorgesehen. Eine manuelle Prüfung durch den Administrator ist bei wenigen Computern möglich. Bei steigender Anzahl jedoch immer Zeitaufwändiger. Ohne eine zusätzliche Verwaltungs- und Reporting Software sind kleine und mittelständische Unternehmen darauf angewiesen einen Mittelweg zu gehen. Mithilfe des TaskWorkers kann diese Aufgabe zentral durch passende Skripte und die Report Fähigkeiten gestützt, dennoch Kostenneutral ohne hohe Zusatzaufwände realisiert werden.
Automatisierung von Aufgaben im Active Directory
Das Active Directory bietet eine Vielzahl an Objekten und Themen, welche in großen IT Umgebungen oftmals an Unterschiedliche Administratoren delegiert werden. So können oftmals Support Administratoren die Endgeräte als auch die Objekte der Anwender bearbeiten. Systemverantwortliche erhalten oftmals zusätzliche Benutzerkennungen um Anwendungsspezifisch administrativ in Ihrem Bereich wirken zu können. Für alle Active Directory Standardaufgaben kann der TaskWorker innerhalb des Active Directory wirken.
- Benutzeranlage
Workflowgestützte und durch unterschiedliche Bereiche gesteuert kann der Prozess der Benutzeranlage über die HR Abteilung gestartet, über den Fachbereich bestätigt und über den TaskWorker im Active Directory angelegt werden.
- Anreicherung mit Stammdaten
Über zusätzliche Verwaltungssysteme können AD Benutzerobjekte, webbasiert durch den Benutzer selbst, den Vorgesetzten oder Fachabteilungen hinweg in zentralen Datenbanken angereichert werden. Ein automatisierter Export an einen TaskWorker führt die notwendigen Updates im Active Directory aus, damit z. b. im Exchange Adressbuch die passenden Daten angezeigt werden können.
- Zurücksetzen von Kennwörtern
Supporttätigkeiten die an Benutzer ausgelagert sind können, Workflow gestützt über Webseiten das zurücksetzen des Benutzerpassworts realisieren. Informationen zum neuen Kennwort werden automatisiert auf Basis der Stellvertreter und Vorgesetztenrolle so verteilt, sodass Tippfehler beim Kennwort setzen und eine Kenntnis des Kennworts bei unberechtigten ausgeschlossen werden können.
- Gruppenzuordnung
Workflow und Self-Service gestützt können Benutzer passenden Active Directory Gruppen zugewiesen werden. Dadurch wird nicht nur die IT-Abteilung entlastet, sondern die Compliance mit Protokollierung auch in sensiblen Bereichen der Active Directory sichergestellt.
- Bitlocker Schlüssel & lokale Administratorkennwörter
Das Anfordern von Bitlocker Laufwerksschlüsseln und zurücksetzen der lokalen Administratorkennwörter sind kleine PowerShell Befehle mit großer Auswirkung und ebenso hohem Einsparungspotential im IT Support, wenn es um die Wartung von Endgeräten bei Ausfällen geht.
- Konformitätsreports für Benutzer & Gruppen
Übersichten von Gruppenzuordnungen und Benutzerrechten zu erstellen, sind nicht nur bei Mitarbeiterein- und Aus-tritt, sondern auch bei Abteilungswechsel die Regel. Eine Automatisierung mittels TaskRunner hilft dabei Vorgesetzten und Mitarbeitern – nicht nur im Audit Fall – die Übersicht zu behalten und korrigierend eingreifen zu können.
Automatisierung von Dateiserveraufgaben
File Server Administration kann so einfach sein. Eine AD Gruppe im NTFS Laufwerk hier. Eine Benutzerzuordnung da. Doch bei stetig größer werdenden Unternehmens und Abteilungsstrukturen kann diese Aufgabe – je nach Umfang der Dateien – ewig dauern.
- Verteiltes Dateisystem (DFS)
In großen Umgebungen werden zentral und dezentral Dateiserver betrieben. Diese werden häufig mittels DFS als ein zentrales Verzeichnis dargestellt. Die Verwaltung und Prüfung des DFS sind dabei Prozesse welche mittels PowerShell (vgl. https://adamtheautomator.com/dfs-powershell-scripts/) und TaskWorker automatisiert werden können.
- Ordnererstellung, NTFS Rechte & Dateifreigabe
Der TaskWorker erstellt bei Bedarf neue Ordner auf Dateiservern, erstellt Freigaben und Active Directory Gruppen und berechtigt Benutzer und Gruppen auf diese.
- Ordnerumzug von Dateiservern
Dateiserverumzüge können einen Administrator je nach Umfang Tage und Wochen in Beschlag nehmen. Eine Abfolge an PowerShell-Befehlen, welche durch den TaskWorker Remote durchgeführt werden, dauern hierbei meist nur Minuten und können nach erfolgreichen Tests, auch nachts durchgeführt werden.
Ein pseudonymisiertes Beispiel:
- Robocopy Quellpfad Zielpfad
- Compare Quellpfad Zielpfad
- Add DFS Link Zielpfad
- Remove DFS Link Zielpfad
Automatisierung von Software Produkten
Aus der Praxis in Fachabteilungen, sind zahlreiche regelmäßige Routinen bereits jetzt automatisierbar.
- System Center Virtual Machine Manager
Die Erstellung von neuen virtuellen Computern kann automatisiert erfolgen. Netzwerkeinstellungen als auch die Positionierung auf einem Cluster/Host ist nicht nur mittels SCVMM, sondern auch auf Standalone Hyper-V-Systemen in einer DMZ möglich.
- Data Protection Manager
Das Anlegen, Aktivieren und Löschen von Aufgaben ist genauso wie eine Rücksicherung automatisierbar. Dadurch lassen sich regelmäßige Test-Rücksicherungen realisieren, damit alle Dokumentations- und Testplichten in großen IT Abteilungen bestätigt werden können.
- App-V
Die Ausbringung von neuen App-V Paketen an Clients und Server können unabhängig der Gruppenrichtlinien erfolgen. So können über den TaskWorker über das Internet die Pakete auch im Home Office aktiviert werden.
- SQL Datenbankbereitstellung
Die Anlage von neuen Datenbanken kann nicht nur in Microsoft Azure, sondern auch auf einem Unternehmensinternen SQL Server automatisiert werden. Damit sind Rollouts von Anwendungen und temporäre Datenbanken für Migrationszwecke automatisiert möglich.
- Lync / Skype for Business
Häufig müssen bei einer Benutzeranlage im Active Directory auch Rufnummern und Wahlberechtigungen am Lync oder Skype for Business Server zugewiesen werden. Diese Aufgabe kann vollständig in PowerShell auf Basis eines Workflows automatisiert werden, wodurch eine Interaktion mit dem IT Support oder Anwendungsbetreuer auf ein Minimum reduziert werden kann.
Doch entscheiden Sie selbst.
Wieviel sind Ihnen eine Erleichterung der täglichen Routinen und Reduzierung von Fehlerursachen in der IT Abteilung Wert?
Haben Sie genug Personal zur Verfügung? Oder bleiben Aufgaben liegen, werden unregelmäßig durchgeführt oder bezahlen Sie gar einen externen Dienstleister für zusätzliche Unterstützung?
Nach erfolgreicher Standardisierung der Routinetätigkeiten können Sie vieles selbst erledigen und entspannt die freigewordenen Ressourcen in die wirklich wichtigen IT Tätigkeiten investieren.
Mehr zu diesem Beitrag
Quellen / Einzelnachweise
- keine
Weiterführende Links
- keine
Änderungshistorie
Erstellt: 2021-02-15 | Zuletzt geändert: 2021-02-15 |
Änderungshistorie: – 2021-02-15: Basis – Layout + Text |