PLATTFORM

Dein PowerShell, verwandelt in abgesicherten Self-Service.

RealmJoin synchronisiert eine kuratierte Bibliothek aus 175 Runbooks in dein eigenes Azure-Automation-Konto, baut für jedes Skript ein Formular und entscheidet, wer was ausführen darf. Jeder Job hinterlässt ein Log.

  • 175 Runbooks, Open Source
  • Läuft in deinem Azure-Abonnement
  • Berechtigungen bis hinunter zur Zielgruppe
  • Jeden Monat neue Runbooks
Report sent to it-licensing@contoso.com. Example data.

175 Runbooks, die du nicht schreiben musst

Die Bibliothek ist Open Source auf GitHub. RealmJoin synchronisiert sie in dein Automation-Konto, hält sie mit den monatlichen Releases aktuell und führt deine eigenen Runbooks gleich daneben aus.

Runbooks aus der Bibliothek, nach Geltungsbereich
Runbook
GeplantCleanup Autopilot devices
GeplantDelete stale devices
GeplantAuto-approve driver updates
GeplantNotify users about low disk space
GeplantReport devices without primary user
GeplantReport expiring application credentials
GeplantMonitor pending EPM requests
GeplantSync MFA-secure users to group
Backup Conditional Access policies
Notify changed CA policies
List inactive users
Invite external guest users
Add shared mailbox
Export all Intune devices
Check SharePoint and OneDrive status
Offboard user permanently
Offboard user temporarily
Create temporary access pass
Reset MFA
Revoke or restore access
Confirm or dismiss risky user
Convert to shared mailbox
Delegate full access
Set out of office
Set Teams Phone
Assign Windows 365
Resize Windows 365
Check Intune enrollment readiness
Assign groups by template
List sign-in events
Wipe device
Outphase device
Rename device
Set primary user
Wipe managed app data
Check device compliance
Isolate or release device
Restrict or release code execution
Check Defender status
Show BitLocker recovery key
Show FileVault recovery key
Show LAPS password
Reset mobile device PIN
Toggle drain mode
Restart host
Add or remove user
Add or remove owner
Add or remove nested group
Rename group
Change visibility
List all members
List user devices
Remove group
Enable or disable external mail
Show or hide in address book
Archive team
GeplantUnenroll updatable assets

Einige Runbooks aus jedem Geltungsbereich. Organisation, 96 Runbooks: Allgemein 39, Geräte 19, Security 15, Mail 10, Anwendungen 9, Collaboration 3, Telefonie 1.
Nutzer, 43 Runbooks: Mail 13, Allgemein 12, Security 9, Telefonie 5, Nutzerinfos 3, AVD 1.
Gerät, 22 Runbooks: Allgemein 12, Security 8, AVD 2.
Gruppe, 14 Runbooks: Allgemein 9, Mail 2, Geräte 2, Teams 1.

  • Synchronisiert aus GitHub

    Standardmäßig aus dem Branch production, mit dem Präfix rjgit-, passend zur Bibliothek hinzugefügt, aktualisiert und entfernt.

  • Module inklusive

    Die benötigten Module werden aus jedem Skript gelesen und aus der PowerShell Gallery installiert, Abhängigkeiten eingeschlossen.

  • Verwaltete Laufzeitumgebung

    Eine PowerShell-7.4-Umgebung mit Az und Azure CLI, in deinem Automation-Konto.

Das Formular schreibt sich selbst

RealmJoin liest den Parameterblock und die kommentarbasierte Hilfe jedes Skripts. Use-RJInterface-Annotationen machen aus Parametern Auswahlfelder für Nutzer, Gruppen und Geräte auf Basis von Microsoft Graph, Zahlen-, Datums- und Textfelder oder Tenant-Einstellungen. Aus ValidateSet wird ein Dropdown.

  • Pflichtfelder werden geprüft, bevor ein Job startet
  • Pro Tenant lässt sich jedes Feld ausblenden, umbenennen, umsortieren oder vorbelegen
  • Bedingte Regeln: Wählst du eine Option, ändern sich andere Felder
  • Der Name des Aufrufers wird für den Audit-Trail mitgegeben

Was RealmJoin aus dem Skript rendert. Die Parameter stammen zur Veranschaulichung aus zwei Runbooks der Bibliothek.

offboard-user-permanently.ps1Auszug
param (  [Parameter(Mandatory = $true)]  [ValidateScript( { Use-RJInterface -Type Graph -Entity User -DisplayName "User" } )]  [String] $UserName,  [ValidateScript( { Use-RJInterface -Type Graph -Entity User -DisplayName "Who should step in as group/resource owner?" } )]  [String] $ReplacementOwnerName,  [bool] $ReplaceManagerReferences = $false,  [ValidateSet("WhatIf (report only)", "Delete")]  [string] $DeleteMode = "WhatIf (report only)")
UserMMMaren Müller
Who should step in as group/resource owner?LBLukas Brandt
Replace manager referencesOff
Delete modeWhatIf (report only)

Wer was ausführen darf, bis hinunter zum Ziel

Die Runbook-Berechtigungen stehen in einem JSON-Dokument pro Tenant. Rollen werden auf Entra-Gruppen abgebildet und geben Runbooks über Namensmuster frei. Zielgruppen schränken eine Rolle weiter ein, sodass der First-Level-Support lokale Admin-Passwörter für Schweden anzeigen darf, sonst aber nirgends. Für die Zeitplanung gibt es eigene Erlaubnis- und Verbotsmuster.

  • Ganze Familien per Wildcard aktivieren oder deaktivieren
  • Rollen pro Zielgruppe einschränken, nicht nur pro Runbook
  • Kommentare und nachgestellte Kommas sind erlaubt, damit es lesbar bleibt
Settings / Runbook permissionsAuszug aus dem mitgelieferten Beispiel
{  "EnabledRunbookPatterns": [ "rjgit-*_mail_*", "rjgit-*_security_*" ],  "DisabledRunbookPatterns": [ "*password*" ],  "Roles": {    "LAPSAdmin": {      "Groups": [ /* CFG - RealmJoin Admin */ "724c288d-…" ],      "AllowedRunbookPatterns": [ "rjgit-*_security_*" ]    },    "DeviceAdmin": {      "Groups": [ /* Sweden Supporters */ "52fcd199-…" ],      "AllowedRunbookPatterns": [ "rjgit-device_*" ]    }  },  "TargetEntityGroups": {    /* Sweden Users: LAPS only for Sweden Supporters */    "ca03f227-…": { "RestrictRoles": { "LAPSAdmin": [ "52fcd199-…" ] } }  },  "SchedulingDisabledRunbookPatterns": [ "rjgit-device_*" ]}
  • Zeitpläne in deiner Zeitzone

    Stündliche, tägliche, wöchentliche und monatliche Zeitpläne sind fertig vorhanden, alle in der Zeitzone deines Tenants, und du kannst eigene ergänzen.

    • Geplante Jobs stehen neben den manuellen
    • Zeitplanung pro Runbook-Muster erlauben oder sperren
  • Gebaut für den unbeaufsichtigten Lauf

    34 Runbooks der Bibliothek sind dafür gebaut: Aufräumen, Reporting und Monitoring, das niemand von Hand starten sollte.

    • Berichte per E-Mail oder als zeitlich begrenzter Downloadlink
    • Jeder geplante Lauf steht im Jobverlauf und in deinem Log-Analytics-Workspace

Auch on premises Preview

Manche Aufgaben liegen weiterhin on premises: eine Dateifreigabe, ein Active-Directory-Attribut, eine Altanwendung. Runbooks, deren Namen auf _hybrid enden, können auf einer Hybrid-Runbook-Worker-Gruppe in deinem Netzwerk laufen. Beim Start wählst du die Worker-Gruppe, alles andere bleibt gleich.

Während der Preview im RealmJoin-Staging-Portal verfügbar.

RealmJoin-Portal

Formular, Berechtigungen, Zeitplan

Deine Azure Automation

Job, Logs, Zeitpläne

Dein Hybrid Worker

Führt *_hybrid-Runbooks on premises aus

Eine Remediation-Bibliothek, gestaffelt und gemessen

RealmJoin synchronisiert jede Nacht kuratierte Intune-Remediation-Skripte aus seinem öffentlichen GitHub-Repository. Du abonnierst eines, stellst es bereit, verteilst es nach Zeitplan an verwaltete Gruppen und siehst dann pro Gerät die Ergebnisse von Erkennung und Behebung. Und wenn es auf einer einzelnen Maschine sofort sein muss, startest du es von der Geräteseite.

  • Unmanaged, Managed, Staged, Deployed und Deprecated auf einen Blick
  • Erkennungs- und Behebungsskript nebeneinander
  • Skripte, die upstream entfernt wurden, bleiben erhalten, solange du sie noch nutzt
Example data.

Formulare für alle anderen

Nicht jede Anfrage ist ein Runbook. Self-Service-Formulare entstehen aus einem JSON-Schema mit einer Übersetzungsdatei, erscheinen für Mitarbeiter als Unternehmensformulare und schicken jede Einreichung per E-Mail oder an einen Webhook, zum Beispiel an dein ITSM-Werkzeug oder einen Teams-Flow. Jede Antwort wird in einer Historie aufbewahrt.

  • Mehrsprachig über eine Übersetzungsdatei
  • E-Mail-Empfänger und optionaler Webhook pro Formular
  • Formularhistorie für Admins, Antworten auf der Nutzerseite
Example data.

Runbooks von überall starten

Die Customer API führt Runbooks synchron oder im Hintergrund aus und liefert Jobstatus, Ausgabetext, Ausgabeströme und Ausnahmen zurück. Dein ITSM kann einen Austritt direkt aus dem Ticket heraus abwickeln, das ihn angefordert hat.

  • Ausführen und warten

    Synchroner Aufruf, der zurückkehrt, wenn der Job endet, für Jobs bis zu einer Stunde.

  • Im Hintergrund starten

    Liefert sofort eine Job-ID, den Status fragst du ab, wenn du ihn brauchst.

  • Jobstatus

    In der Warteschlange, laufend, abgeschlossen oder fehlgeschlagen.

  • Ausgabe

    Reiner Ausgabetext oder alle Ausgabeströme.

  • Ausnahmen

    Der Ausnahmetext, wenn ein Job fehlschlägt.

  • Nächtlicher Log-Export

    Abgeschlossene Jobs landen um 23:00 Uhr in deinem Log-Analytics-Workspace. Referenz der Customer API

Verabschiede dich vom Skriptordner.

Verbinde Azure Automation, synchronisiere die Bibliothek und gib dem Helpdesk das erste Runbook mit den passenden Leitplanken.