Votre PowerShell, transformé en self-service encadré.
RealmJoin synchronise une bibliothèque organisée de 175 runbooks dans votre propre compte Azure Automation, génère un formulaire pour chaque script et détermine qui peut exécuter quoi. Chaque job laisse un journal.
- 175 runbooks, open source
- S'exécute dans votre abonnement Azure
- Permissions jusqu'au groupe cible
- De nouveaux runbooks chaque mois
175 runbooks que vous n'avez pas à écrire
La bibliothèque est open source sur GitHub. RealmJoin la synchronise dans votre compte Automation, la maintient à jour au fil des nouvelles versions publiées chaque mois et exécute vos propres runbooks juste à côté.
| Runbook |
|---|
| PlanifiéCleanup Autopilot devices |
| PlanifiéDelete stale devices |
| PlanifiéAuto-approve driver updates |
| PlanifiéNotify users about low disk space |
| PlanifiéReport devices without primary user |
| PlanifiéReport expiring application credentials |
| PlanifiéMonitor pending EPM requests |
| PlanifiéSync 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 |
| PlanifiéUnenroll updatable assets |
Quelques runbooks de chaque portée. Organisation, 96 runbooks : General 39, Devices 19, Security 15, Mail 10, Applications 9, Collaboration 3, Phone 1.
Utilisateur, 43 runbooks : Mail 13, General 12, Security 9, Phone 5, User info 3, AVD 1.
Appareil, 22 runbooks : General 12, Security 8, AVD 2.
Groupe, 14 runbooks : General 9, Mail 2, Devices 2, Teams 1.
Synchronisés depuis GitHub
Depuis la branche
productionpar défaut, préfixésrjgit-, ajoutés, mis à jour et supprimés pour refléter la bibliothèque.Modules pris en charge
Les modules requis sont lus dans chaque script et installés depuis la PowerShell Gallery, dépendances comprises.
Environnement d'exécution géré
Un environnement PowerShell 7.4 avec Az et Azure CLI, dans votre compte Automation.
Le formulaire s'écrit tout seul
RealmJoin lit le bloc de paramètres et l'aide intégrée de chaque script. Les annotations Use-RJInterface transforment les paramètres en sélecteurs d'utilisateurs, de groupes et d'appareils appuyés sur Microsoft Graph, en champs numériques, de date ou de texte, ou en paramètres du tenant. ValidateSet devient une liste déroulante.
- Les champs obligatoires sont vérifiés avant le démarrage d'un job
- Par tenant, masquer, renommer, réordonner ou prédéfinir chaque champ
- Règles conditionnelles : le choix d'une option modifie d'autres champs
- Le nom du demandeur est transmis pour la piste d'audit
Ce que RealmJoin génère à partir du script. Paramètres combinés de deux runbooks de la bibliothèque à titre d'illustration.
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)")
Qui peut exécuter quoi, jusqu'à la cible
Les permissions des runbooks tiennent dans un document JSON par tenant. Les rôles sont associés à des groupes Entra et autorisent des runbooks par motif de nom. Les groupes cibles peuvent restreindre un rôle davantage : le support de premier niveau peut alors afficher les mots de passe administrateur local pour la Suède, mais nulle part ailleurs. La planification dispose de ses propres motifs d'autorisation et de refus.
- Activer ou désactiver des familles entières à l'aide de wildcards
- Restreindre les rôles par groupe cible, pas seulement par runbook
- Les commentaires et les virgules finales sont acceptés, le fichier reste lisible
{ "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_*" ]}
Des planifications dans votre fuseau horaire
Des planifications horaires, quotidiennes, hebdomadaires et mensuelles sont prêtes à l'emploi, toutes dans le fuseau horaire de votre tenant, et vous pouvez ajouter les vôtres.
- Les jobs planifiés listés à côté des jobs manuels
- Autoriser ou bloquer la planification par motif de runbook
Conçus pour tourner sans intervention
34 runbooks de la bibliothèque sont prévus pour cela : nettoyage, reporting et supervision que personne ne devrait lancer à la main.
- Rapports par e-mail ou via un lien de téléchargement à durée limitée
- Chaque exécution planifiée dans l'historique des jobs et votre espace de travail Log Analytics
Sur site aussi Preview
Certaines tâches vivent encore sur site : un partage de fichiers, un attribut Active Directory, une application héritée. Les runbooks dont le nom se termine par _hybrid peuvent s'exécuter sur un groupe de Hybrid Runbook Workers dans votre réseau. Au lancement, vous choisissez le groupe de workers ; tout le reste ne change pas.
Disponible sur le portail de staging RealmJoin pendant la préversion.
Une bibliothèque de remédiation, déployée par étapes et mesurée
RealmJoin synchronise chaque nuit des scripts de remédiation Intune sélectionnés depuis son dépôt GitHub public. Abonnez-vous à un script, passez-le en staging, déployez-le vers les groupes gérés selon un calendrier, puis suivez les résultats de détection et de remédiation par appareil. S'il faut agir tout de suite sur une machine, lancez-le depuis la page de l'appareil.
- Non gérés, gérés, en staging, déployés et dépréciés en un coup d'œil
- Les sources de détection et de remédiation côte à côte
- Les scripts retirés en amont sont conservés tant que vous les utilisez
Des formulaires pour tous les autres
Toutes les demandes ne sont pas des runbooks. Les formulaires self-service sont construits à partir d'un schéma JSON avec un fichier de traduction, apparaissent aux employés comme des formulaires d'entreprise et envoient chaque soumission par e-mail ou vers un webhook, par exemple votre outil ITSM ou un flux Teams. Chaque réponse est conservée dans un historique.
- Multilingues grâce à un fichier de traduction
- Destinataire e-mail et webhook optionnel par formulaire
- Historique des formulaires pour les admins, réponses sur la page de l'utilisateur
Lancez des runbooks depuis n'importe où
La Customer API exécute les runbooks de manière synchrone ou en arrière-plan et renvoie l'état du job, le texte de sortie, les flux de sortie et les exceptions. Votre ITSM peut traiter le départ d'un collaborateur directement depuis le ticket qui l'a demandé.
Exécuter et attendre
Appel synchrone qui rend la main à la fin du job, pour des jobs jusqu'à une heure.
Démarrer en arrière-plan
Renvoie immédiatement un ID de job ; interrogez l'état quand vous en avez besoin.
État du job
En file d'attente, en cours, terminé ou en échec.
Sortie
Le texte de sortie simple ou tous les flux de sortie.
Exceptions
Le texte de l'exception quand un job échoue.
Export nocturne des journaux
Les jobs terminés arrivent dans votre espace de travail Log Analytics à 23:00. Référence de la Customer API
Mettez le dossier de scripts à la retraite.
Connectez Azure Automation, synchronisez la bibliothèque et confiez le premier runbook au helpdesk avec les bons garde-fous.