Inaktive Computer deaktivieren und löschen, Benutzerkonten nach Inaktivität bereinigen, Zertifikate erneuern: Typische Runbook-Aufgaben – und wie man die PowerShell-Hürde in Orchestrator überwindet.
Ein neues Community-Mitglied wollte mit Orchestrator typische Verwaltungsaufgaben automatisieren – und stieß schon bei einfachen Aufgaben an Grenzen:
- Computer nach x Tagen Inaktivität in eine eigene OU verschieben, deaktivieren und nach weiteren x Tagen löschen,
- deaktivierte Benutzer nach x Tagen verschieben und später löschen,
- Benutzer anhand von Anmelde- und Exchange-Aktivität bewerten und inaktive Konten deaktivieren,
- auslaufende Zertifikate erneuern.
Per Hand ließ sich das bereits mit PowerShell erledigen. Das Problem: Die Aktivität Run .Net Script in Orchestrator 2012 R2 lief nur mit PowerShell 2.0 im 32-Bit-Kontext – viele Cmdlets und Module funktionierten dort nicht.
Die Lösung: PowerShell in einem eigenen Prozess starten
Ein bewährtes Muster aus der Community: Innerhalb von Run .Net Script wird eine aktuelle, 64-Bit-PowerShell gestartet, die das eigentliche Skript ausführt. Die Ergebnisse werden zurückgegeben und über Published Data an den Datenbus des Runbooks übergeben:
$result = & "$env:SystemRoot\sysnative\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -Command {
Import-Module ActiveDirectory
$grenze = (Get-Date).AddDays(-90)
Get-ADComputer -Filter { LastLogonTimestamp -lt $grenze -and Enabled -eq $true } -Properties LastLogonTimestamp |
Select-Object -ExpandProperty Name
}
$Computer = $result -join ';'
Die Variable $Computer wird in den Eigenschaften der Aktivität als Published Data veröffentlicht und steht nachfolgenden Aktivitäten zur Verfügung.
Aufbau der Runbooks
- Ermitteln: Ein Runbook sammelt die Kandidaten (inaktive Computer, deaktivierte Benutzer).
- Protokollieren: Kandidaten in eine Datei oder Tabelle schreiben – für Nachvollziehbarkeit und Rückfragen.
- Erste Stufe: Deaktivieren und in eine Quarantäne-OU verschieben, Beschreibung mit Datum setzen.
- Zweite Stufe: Ein zweites Runbook löscht Objekte, die länger als die Frist in der Quarantäne-OU liegen.
- Zeitplan: Beide Runbooks über einen Monitor Monitor Date/Time regelmäßig starten.
Tipp
Für den Einstieg in gutes Runbook-Design hat Microsoft Press ein kostenloses E-Book zum Entwurf von Orchestrator-Runbooks veröffentlicht. Die Grundregeln – kleine, modulare Runbooks, klare Fehlerbehandlung, Logging – gelten unabhängig vom Werkzeug.
Heute
Neuere Orchestrator-Versionen haben die PowerShell-Unterstützung verbessert und bieten einen 64-Bit-Runbook-Server. Für reine PowerShell-Automatisierung ohne grafische Abläufe sind heute auch Azure Automation mit Hybrid Runbook Worker oder geplante Aufgaben mit Gruppen-verwalteten Dienstkonten gängige Alternativen.