PLATFORM

Je PowerShell-scripts, omgezet in afgeschermde selfservice.

RealmJoin synchroniseert een samengestelde bibliotheek van 175 runbooks naar je eigen Azure Automation-account, bouwt voor elk script een formulier en bepaalt wie wat mag uitvoeren. Elke job laat een logboek achter.

  • 175 runbooks, opensource
  • Draait in je eigen Azure-abonnement
  • Rechten tot op de doelgroep
  • Elke maand nieuwe runbooks
Report sent to it-licensing@contoso.com. Example data.

175 runbooks die je niet zelf hoeft te schrijven

De bibliotheek staat als opensource op GitHub. RealmJoin synchroniseert hem naar je Automation-account, houdt hem actueel met de releases die elke maand verschijnen, en draait je eigen runbooks er gewoon naast.

Runbooks uit de bibliotheek, per scope
Runbook
IngeplandCleanup Autopilot devices
IngeplandDelete stale devices
IngeplandAuto-approve driver updates
IngeplandNotify users about low disk space
IngeplandReport devices without primary user
IngeplandReport expiring application credentials
IngeplandMonitor pending EPM requests
IngeplandSync 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
IngeplandUnenroll updatable assets

Een paar runbooks uit elke scope. Organisatie, 96 runbooks: Algemeen 39, Apparaten 19, Beveiliging 15, E-mail 10, Applicaties 9, Samenwerking 3, Telefonie 1.
Gebruiker, 43 runbooks: E-mail 13, Algemeen 12, Beveiliging 9, Telefonie 5, Gebruikersinfo 3, AVD 1.
Apparaat, 22 runbooks: Algemeen 12, Beveiliging 8, AVD 2.
Groep, 14 runbooks: Algemeen 9, E-mail 2, Apparaten 2, Teams 1.

  • Gesynchroniseerd vanaf GitHub

    Standaard uit de branch production, met het voorvoegsel rjgit-, en toegevoegd, bijgewerkt en verwijderd om de bibliotheek te volgen.

  • Modules geregeld

    Benodigde modules worden uit elk script gelezen en vanuit de PowerShell Gallery geïnstalleerd, inclusief afhankelijkheden.

  • Beheerde runtime

    Een PowerShell 7.4-omgeving met Az en de Azure CLI, in je eigen Automation-account.

Het formulier schrijft zichzelf

RealmJoin leest het parameterblok en de comment-based help van elk script. Annotaties met Use-RJInterface maken van parameters keuzelijsten voor gebruikers, groepen en apparaten op basis van Microsoft Graph, velden voor getallen, datums en tekst, of tenantinstellingen. ValidateSet wordt een dropdown.

  • Verplichte velden worden gecontroleerd voordat een job start
  • Per tenant elk veld verbergen, hernoemen, verplaatsen of vooraf invullen
  • Voorwaardelijke regels: kies een optie en andere velden veranderen mee
  • De naam van de aanroeper gaat mee voor het audittraject

Wat RealmJoin uit het script opbouwt. De parameters komen ter illustratie uit twee runbooks uit de bibliotheek.

offboard-user-permanently.ps1fragment
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)

Wie wat mag uitvoeren, tot op het doel

De rechten op runbooks staan in één JSON-document per tenant. Rollen verwijzen naar Entra-groepen en geven runbooks vrij op naampatroon. Doelgroepen kunnen een rol verder inperken, zodat de eerstelijnssupport lokale beheerderswachtwoorden voor Zweden wel mag tonen en nergens anders. Voor het inplannen gelden eigen patronen voor toestaan en weigeren.

  • Hele families in- of uitschakelen met jokertekens
  • Rollen inperken per doelgroep, niet alleen per runbook
  • Commentaar en komma's aan het eind zijn toegestaan, zodat het leesbaar blijft
Settings / Runbook permissionsfragment uit het meegeleverde voorbeeld
{  "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_*" ]}
  • Planningen in jouw tijdzone

    Planningen per uur, per dag, per week en per maand staan klaar, allemaal in de tijdzone van je tenant, en je kunt er zelf aan toevoegen.

    • Ingeplande jobs staan naast de handmatige
    • Inplannen toestaan of blokkeren per runbookpatroon
  • Gemaakt om onbeheerd te draaien

    34 runbooks uit de bibliotheek zijn daarop gebouwd: opruimen, rapporteren en bewaken, werk dat niemand met de hand zou moeten starten.

    • Rapporten per e-mail of als downloadlink met beperkte geldigheid
    • Elke ingeplande run in de jobgeschiedenis en in je eigen Log Analytics-workspace

Ook on-premises Preview

Sommige taken staan nog on-premises: een bestandsshare, een attribuut in Active Directory, een oude applicatie. Runbooks waarvan de naam eindigt op _hybrid kunnen draaien op een Hybrid Runbook Worker-groep in je eigen netwerk. Bij het starten kies je de workergroep, verder blijft alles hetzelfde.

Zolang dit in preview is, beschikbaar op het stagingportaal van RealmJoin.

RealmJoin-portaal

Formulier, rechten, planning

Jouw Azure Automation

Job, logs, planningen

Jouw Hybrid Worker

Draait *_hybrid-runbooks on-premises

Een herstelbibliotheek, gefaseerd en gemeten

RealmJoin synchroniseert elke nacht samengestelde Intune-herstelscripts uit zijn openbare GitHub-repository. Je abonneert je op een script, zet het in staging, rolt het volgens planning uit naar beheerde groepen en volgt daarna per apparaat de resultaten van detectie en herstel. Heb je het meteen op één machine nodig, dan start je het vanaf de apparaatpagina.

  • Onbeheerd, beheerd, in staging, uitgerold en uitgefaseerd in één oogopslag
  • De broncode voor detectie en herstel naast elkaar
  • Scripts die upstream verdwijnen blijven bestaan zolang jij ze gebruikt
Example data.

Formulieren voor alle anderen

Niet elk verzoek is een runbook. Selfserviceformulieren worden opgebouwd uit een JSON-schema met een vertaalbestand, verschijnen voor medewerkers als bedrijfsformulieren en sturen elke inzending per e-mail of naar een webhook, bijvoorbeeld je ITSM-tool of een flow in Teams. Elke reactie wordt in een geschiedenis bewaard.

  • Meertalig via een vertaalbestand
  • Een e-mailontvanger en optioneel een webhook per formulier
  • Formuliergeschiedenis voor beheerders, reacties op de gebruikerspagina
Example data.

Start runbooks vanaf elke plek

De Customer API voert runbooks synchroon of op de achtergrond uit en geeft jobstatus, uitvoertekst, uitvoerstromen en uitzonderingen terug. Je ITSM kan een vertrekkende medewerker offboarden vanuit het ticket waarin daarom is gevraagd.

  • Uitvoeren en wachten

    Synchrone aanroep die terugkomt zodra de job klaar is, voor jobs tot een uur.

  • Op de achtergrond starten

    Geeft meteen een job-ID terug, de status vraag je op wanneer je die nodig hebt.

  • Jobstatus

    In de wachtrij, bezig, voltooid of mislukt.

  • Uitvoer

    Platte uitvoertekst of alle uitvoerstromen.

  • Uitzonderingen

    De tekst van de uitzondering als een job mislukt.

  • Nachtelijke logexport

    Afgeronde jobs belanden om 23:00 in je Log Analytics-workspace. Naslag voor de Customer API

Neem afscheid van de scriptmap.

Koppel Azure Automation, synchroniseer de bibliotheek en geef het eerste runbook met de juiste grenzen door aan de helpdesk.