플랫폼

이미 가지고 있는 PowerShell을, 가드레일을 갖춘 셀프서비스로.

RealmJoin은 엄선한 175개의 Runbook 라이브러리를 자체 Azure Automation 계정에 동기화하고, 스크립트마다 폼을 만들며, 누가 무엇을 실행할 수 있는지 정합니다. 모든 작업은 로그를 남깁니다.

  • 오픈소스 Runbook 175개
  • 자체 Azure 구독에서 실행
  • 대상 그룹 단위까지 나뉘는 권한
  • 매월 추가되는 새 Runbook
Report sent to it-licensing@contoso.com. Example data.

직접 쓰지 않아도 되는 Runbook 175개

라이브러리는 GitHub에 오픈소스로 공개되어 있습니다. RealmJoin이 이를 자체 Automation 계정에 동기화하고, 매월 나오는 새 릴리스에 맞춰 최신 상태로 유지하며, 직접 만든 Runbook도 그 옆에서 함께 실행합니다.

라이브러리의 Runbook, 범위별
Runbook
예약 실행Cleanup Autopilot devices
예약 실행Delete stale devices
예약 실행Auto-approve driver updates
예약 실행Notify users about low disk space
예약 실행Report devices without primary user
예약 실행Report expiring application credentials
예약 실행Monitor pending EPM requests
예약 실행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
예약 실행Unenroll updatable assets

범위별로 일부 Runbook만 보여 줍니다. 조직, Runbook 96개: General 39, Devices 19, Security 15, Mail 10, Applications 9, Collaboration 3, Phone 1.
사용자, Runbook 43개: Mail 13, General 12, Security 9, Phone 5, User info 3, AVD 1.
디바이스, Runbook 22개: General 12, Security 8, AVD 2.
그룹, Runbook 14개: General 9, Mail 2, Devices 2, Teams 1.

  • GitHub에서 동기화

    기본값은 production 브랜치이며, rjgit- 접두사가 붙고, 라이브러리에 맞춰 추가와 갱신, 삭제가 이루어집니다.

  • 모듈 자동 처리

    필요한 모듈은 스크립트마다 읽어 들여 PowerShell Gallery에서 종속성까지 함께 설치합니다.

  • 관리형 런타임

    Az와 Azure CLI를 갖춘 PowerShell 7.4 환경을 자체 Automation 계정에 구성합니다.

스스로 만들어지는 폼

RealmJoin은 스크립트마다 매개변수 블록과 주석 기반 도움말을 읽습니다. Use-RJInterface 주석은 매개변수를 Microsoft Graph와 연동된 사용자, 그룹, 디바이스 피커나 숫자, 날짜, 텍스트 필드, 또는 테넌트 설정으로 바꿉니다. ValidateSet은 드롭다운이 됩니다.

  • 필수 항목은 작업을 시작하기 전에 확인
  • 테넌트별로 어떤 항목이든 숨기거나 이름을 바꾸고, 순서를 조정하거나 기본값 지정
  • 조건 규칙: 한 가지를 고르면 다른 항목이 바뀜
  • 감사 추적을 위해 실행한 사람의 이름이 함께 전달됨

RealmJoin이 스크립트에서 만들어 내는 화면입니다. 설명을 위해 라이브러리 Runbook 두 개의 매개변수를 합쳐 두었습니다.

offboard-user-permanently.ps1발췌
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)

무엇을 누가 실행할 수 있는지, 대상 단위까지

Runbook 권한은 테넌트마다 JSON 문서 하나로 관리합니다. 역할은 Entra 그룹에 연결되고, 이름 패턴으로 Runbook을 허용합니다. 대상 그룹으로 역할을 더 좁힐 수 있어서, 1차 지원 담당자가 스웨덴의 로컬 관리자 암호만 볼 수 있고 다른 곳은 볼 수 없게 만들 수 있습니다. 예약 실행에는 별도의 허용 패턴과 거부 패턴이 있습니다.

  • 와일드카드로 계열 전체를 한 번에 허용하거나 차단
  • Runbook 단위뿐 아니라 대상 그룹 단위로도 역할을 제한
  • 주석과 끝쉼표를 허용해 읽기 좋은 상태 유지
Settings / Runbook permissions기본 제공 예제 발췌
{  "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_*" ]}
  • 자사 표준 시간대에 맞춘 일정

    시간, 일, 주, 월 단위 일정이 테넌트 표준 시간대로 미리 준비되어 있고, 직접 추가할 수도 있습니다.

    • 예약 작업과 수동 실행 작업을 나란히 표시
    • Runbook 패턴별로 예약 실행 허용 또는 차단
  • 무인 실행을 전제로 만든 Runbook

    라이브러리의 Runbook 34개가 여기에 해당합니다. 정리 작업과 보고서 생성, 모니터링처럼 사람이 직접 시작할 필요가 없는 일들입니다.

    • 보고서를 메일 또는 기한이 있는 다운로드 링크로 전달
    • 예약 실행은 모두 작업 이력과 자체 Log Analytics 워크스페이스에 기록

온프레미스까지 Preview

파일 공유, Active Directory 특성, 레거시 앱처럼 아직 온프레미스에 남아 있는 작업도 있습니다. 이름이 _hybrid로 끝나는 Runbook은 사내 네트워크의 Hybrid Runbook Worker 그룹에서 실행할 수 있습니다. 실행할 때 워커 그룹을 고르기만 하면 되고, 나머지는 똑같습니다.

미리 보기 기간에는 RealmJoin 스테이징 포털에서 사용할 수 있습니다.

RealmJoin 포털

폼, 권한, 일정

자사 Azure Automation

작업, 로그, 일정

자사 Hybrid Worker

*_hybrid Runbook을 온프레미스에서 실행

단계별로 배포하고 결과를 측정하는 수정 스크립트 라이브러리

RealmJoin은 엄선한 Intune 수정 스크립트를 공개 GitHub 저장소에서 매일 밤 동기화합니다. 스크립트를 구독해 단계별로 준비한 뒤 일정에 따라 관리 그룹에 배포하고, 디바이스별 탐지 결과와 수정 결과를 확인하면 됩니다. 특정 PC에서 당장 실행해야 할 때는 디바이스 페이지에서 바로 실행할 수 있습니다.

  • 미관리, 관리, 준비, 배포, 지원 중단 상태를 한눈에
  • 탐지 스크립트와 수정 스크립트를 나란히 확인
  • 원본에서 삭제된 스크립트도 사용 중이면 그대로 유지
Example data.

그 밖의 요청을 위한 양식

모든 요청이 Runbook으로 처리되는 것은 아닙니다. 셀프서비스 양식은 번역 파일이 딸린 JSON 스키마로 만들고, 직원에게는 사내 양식으로 표시되며, 제출 내용은 메일이나 웹훅으로, 예를 들어 ITSM 도구나 Teams 플로로 전달됩니다. 모든 응답은 이력으로 보관됩니다.

  • 번역 파일을 통한 다국어 지원
  • 양식마다 수신 메일 주소와 선택적 웹훅 설정
  • 관리자용 양식 이력, 사용자 페이지의 응답 내역
Example data.

어디서든 Runbook 실행

Customer API는 Runbook을 동기 방식이나 백그라운드로 실행하고, 작업 상태와 출력 텍스트, 출력 스트림, 예외를 반환합니다. ITSM에서는 퇴사 처리를 요청한 티켓에서 바로 처리할 수 있습니다.

  • 실행 후 대기

    작업이 끝나면 결과를 돌려주는 동기 호출로, 한 시간 이내 작업에 적합합니다.

  • 백그라운드 실행

    작업 ID를 즉시 반환하며, 상태는 필요할 때 조회합니다.

  • 작업 상태

    대기, 실행 중, 완료, 실패.

  • 출력

    일반 출력 텍스트 또는 전체 출력 스트림.

  • 예외

    작업이 실패했을 때의 예외 텍스트.

  • 야간 로그 내보내기

    완료된 작업은 23:00에 자체 Log Analytics 워크스페이스로 들어갑니다. Customer API 레퍼런스

스크립트 폴더는 이제 그만.

Azure Automation을 연결하고 라이브러리를 동기화한 다음, 적절한 가드레일을 걸어 첫 Runbook을 헬프데스크에 넘기세요.