Vuestro PowerShell, convertido en autoservicio con permisos.
RealmJoin sincroniza una biblioteca revisada de 175 runbooks con vuestra propia cuenta de Azure Automation, construye un formulario para cada script y decide quién puede ejecutar qué. Cada trabajo deja un registro.
- 175 runbooks, de código abierto
- Se ejecutan en vuestra suscripción de Azure
- Permisos hasta el nivel del grupo de destino
- Nuevos runbooks cada mes
175 runbooks que no tenéis que escribir
La biblioteca es de código abierto en GitHub. RealmJoin la sincroniza con vuestra cuenta de Automation, la mantiene al día a medida que cada mes salen nuevas versiones y ejecuta vuestros propios runbooks junto a ella.
| Runbook |
|---|
| PlanificadoCleanup Autopilot devices |
| PlanificadoDelete stale devices |
| PlanificadoAuto-approve driver updates |
| PlanificadoNotify users about low disk space |
| PlanificadoReport devices without primary user |
| PlanificadoReport expiring application credentials |
| PlanificadoMonitor pending EPM requests |
| PlanificadoSync 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 |
| PlanificadoUnenroll updatable assets |
Algunos runbooks de cada ámbito. Organización, 96 runbooks: General 39, Dispositivos 19, Seguridad 15, Correo 10, Aplicaciones 9, Colaboración 3, Telefonía 1.
Usuario, 43 runbooks: Correo 13, General 12, Seguridad 9, Telefonía 5, Información de usuario 3, AVD 1.
Dispositivo, 22 runbooks: General 12, Seguridad 8, AVD 2.
Grupo, 14 runbooks: General 9, Correo 2, Dispositivos 2, Teams 1.
Sincronizados desde GitHub
Desde la rama
productionde forma predeterminada, con el prefijorjgit-, y se añaden, actualizan y eliminan para reflejar la biblioteca.Módulos resueltos
Los módulos necesarios se leen de cada script y se instalan desde la PowerShell Gallery, con sus dependencias.
Entorno de ejecución gestionado
Un entorno de PowerShell 7.4 con Az y Azure CLI, en vuestra cuenta de Automation.
El formulario se escribe solo
RealmJoin lee el bloque de parámetros y la ayuda basada en comentarios de cada script. Las anotaciones Use-RJInterface convierten los parámetros en selectores de usuarios, grupos y dispositivos respaldados por Microsoft Graph, en campos numéricos, de fecha y de texto, o en ajustes del tenant. ValidateSet se convierte en una lista desplegable.
- Los campos obligatorios se comprueban antes de que empiece un trabajo
- Por tenant, podéis ocultar, renombrar, reordenar o predefinir cualquier campo
- Reglas condicionales: al elegir una opción, otros campos cambian
- El nombre de quien lo ejecuta se transmite para la traza de auditoría
Lo que RealmJoin genera a partir del script. Parámetros combinados de dos runbooks de la biblioteca a modo de ejemplo.
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én puede ejecutar qué, hasta el objetivo concreto
Los permisos de los runbooks son un único documento JSON por tenant. Los roles se asignan a grupos de Entra y autorizan runbooks por patrón de nombre. Los grupos de destino pueden restringir aún más un rol, de modo que el soporte de primer nivel muestre las contraseñas de administrador local de Suecia y de ningún otro sitio. La planificación tiene sus propios patrones de permiso y denegación.
- Activad o desactivad familias enteras con comodines
- Restringid los roles por grupo de destino, no solo por runbook
- Se admiten comentarios y comas finales, así que sigue siendo legible
{ "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_*" ]}
Planificaciones en vuestra zona horaria
Las planificaciones horaria, diaria, semanal y mensual vienen listas, todas en la zona horaria de vuestro tenant, y podéis añadir las vuestras.
- Los trabajos planificados se listan junto a los manuales
- Permitid o bloquead la planificación por patrón de runbook
Pensados para ejecutarse sin supervisión
34 runbooks de la biblioteca están hechos para eso: limpieza, informes y supervisión que nadie debería tener que iniciar a mano.
- Informes por correo o como enlace de descarga con caducidad
- Cada ejecución planificada queda en el historial de trabajos y en vuestro workspace de Log Analytics
También en local Preview
Algunas tareas siguen viviendo en local: un recurso compartido de archivos, un atributo de Active Directory, una aplicación heredada. Los runbooks cuyo nombre termina en _hybrid pueden ejecutarse en un grupo de Hybrid Runbook Worker de vuestra red. Al iniciar uno, elegís el grupo de workers; todo lo demás no cambia.
Disponible en el portal de staging de RealmJoin mientras está en preview.
Una biblioteca de correcciones, por fases y con medición
RealmJoin sincroniza cada noche los scripts de corrección de Intune revisados desde su repositorio público de GitHub. Os suscribís a uno, lo preparáis, lo desplegáis en grupos gestionados según una planificación y después veis los resultados de detección y de corrección por dispositivo. Si lo necesitáis ya en un equipo concreto, lo ejecutáis desde la página del dispositivo.
- Sin gestionar, gestionado, preparado, desplegado y obsoleto de un vistazo
- El código de detección y el de corrección, uno al lado del otro
- Los scripts eliminados en el origen se conservan mientras sigáis usándolos
Formularios para todos los demás
No toda petición es un runbook. Los formularios de autoservicio se construyen a partir de un esquema JSON con un archivo de traducción, aparecen para los empleados como formularios corporativos y remiten cada envío por correo o a un webhook, por ejemplo vuestra herramienta de ITSM o un flujo de Teams. Cada respuesta se conserva en un historial.
- Multilingües mediante un archivo de traducción
- Destinatario de correo y webhook opcional por formulario
- Historial de formularios para los administradores y respuestas en la página del usuario
Iniciad runbooks desde cualquier sitio
La Customer API ejecuta runbooks de forma síncrona o en segundo plano y devuelve el estado del trabajo, el texto de salida, los flujos de salida y las excepciones. Vuestro ITSM puede dar de baja a quien se marcha desde el propio ticket que lo pidió.
Ejecutar y esperar
Llamada síncrona que responde cuando el trabajo termina, para trabajos de hasta una hora.
Iniciar en segundo plano
Devuelve un ID de trabajo de inmediato; consultáis el estado cuando os haga falta.
Estado del trabajo
En cola, en ejecución, completado o fallido.
Salida
Texto de salida simple o todos los flujos de salida.
Excepciones
El texto de la excepción cuando un trabajo falla.
Exportación nocturna de registros
Los trabajos terminados llegan a vuestro workspace de Log Analytics a las 23:00. Referencia de la Customer API
Jubilad la carpeta de scripts.
Conectad Azure Automation, sincronizad la biblioteca y entregad el primer runbook al helpdesk con los límites adecuados.