Microsoft Intune Administration: Complete Practical Course — Matching the Intune Admin Center & MD-102 Certification
The guide is structured around the actual Intune Admin Center Home dashboard — including the Devices blade, Enrollment workflows (Windows Autopilot, Apple, Android, Linux), Compliance Policies, Configuration Profiles and Settings Catalog, App deployment, App Protection Policies, Endpoint Security, Windows Update rings, Reports, and Tenant Administration — all explored in depth with PowerShell automation below.
🗺️ Course Module Map
This guide follows the exact left-navigation order of the Intune Admin Center. Complete each module in sequence for the strongest learning outcome and exam readiness.
Intune Admin Center Overview
Dashboard cards, navigation structure, tenant status, and key operational views
Devices — All Devices & Remote Actions
Device inventory, properties, remote actions: sync, lock, wipe, retire, restart
Device Enrollment
Windows Autopilot modes, Apple ADE, Android Enterprise, enrollment restrictions, ESP
Compliance Policies
Per-platform compliance rules, grace periods, non-compliance actions, Conditional Access integration
Configuration Profiles & Settings Catalog
Templates vs Settings Catalog, ADMX-backed policies, OMA-URI, assignment filters
App Deployment
Win32, LOB, Microsoft Store, web apps — required vs available vs uninstall assignments
App Protection Policies (MAM)
MAM-WE, data transfer settings, access requirements, conditional launch, selective wipe
Endpoint Security
Security baselines, BitLocker, Defender Antivirus, Firewall, EDR, Attack Surface Reduction
Windows Update Management
Update rings, feature updates, expedited updates, quality update deferral
Reports & Endpoint Analytics
Device compliance reports, Endpoint Analytics, startup performance, app reliability
Tenant Administration & RBAC
Built-in and custom roles, scope tags, audit events, connectors and tokens
MD-102 Certification Alignment
Exam domains, skill weightings, scenario tips, and certification pathway
🏠 Module 1: Intune Admin Center Overview
The Microsoft Intune Admin Center, accessible at intune.microsoft.com, is the unified management portal for all endpoint management operations. It replaced the legacy Endpoint Manager portal (endpoint.microsoft.com) and provides a modern, card-based Home dashboard with real-time operational visibility across your device estate.
Home Dashboard Cards
| Dashboard Card | What It Shows | Where to Go Deeper |
|---|---|---|
| Device enrollment status | Total enrolled devices by platform (Windows, iOS, Android, macOS) — count and trend | Devices → All devices |
| Device compliance | Compliant vs non-compliant vs not evaluated — percentage ring by platform | Reports → Device compliance |
| Intune service health | Active Intune service incidents and advisories — links directly to M365 Service Health | Tenant administration → Tenant status |
| Configuration policy status | Policy assignment success vs failure vs conflict counts across all profiles | Devices → Configuration → Configuration profiles |
| App installation status | Required app installations succeeded vs failed across enrolled devices | Apps → Monitor |
| Endpoint Analytics score | Overall Endpoint Analytics score for startup performance, reliability, and security | Reports → Endpoint analytics |
Intune Admin Center Left Navigation — Complete Menu Structure
💻 Devices
📱 Apps
🛡️ Endpoint security
📊 Reports
👤 Users
👥 Groups
⚙️ Tenant administration
🔎 Troubleshooting + support
⚠️ intune.microsoft.com vs Legacy URL
The Intune Admin Center is now exclusively at intune.microsoft.com. The legacy URL endpoint.microsoft.com/## still redirects, but all new features, Copilot integration, and Settings Catalog expansions are only available at the new portal. Always bookmark and link to intune.microsoft.com for documentation and support purposes.
💻 Module 2: Devices — All Devices & Remote Actions
The Devices section is the operational centre of Intune. All devices provides a complete inventory of every MDM-enrolled and co-managed device across all platforms, with device-level drill-down, hardware inventory, and real-time remote action capabilities.
Key Device Properties & Management States
| Property | Description | Values |
|---|---|---|
| Compliance state | Whether device meets all assigned compliance policy settings | Compliant, NonCompliant, Not evaluated, In grace period, Unknown |
| Management agent | How the device is managed by Intune | MDM, EAS, EAS + MDM, ConfigManager, ConfigManager + MDM (Co-managed), IntuneClient |
| Join type | How the device is joined to Azure AD / Entra ID | Azure AD Joined, Hybrid Azure AD Joined, Azure AD Registered |
| Ownership | Whether the device is corporate or personal (BYOD) | Corporate, Personal, Unknown |
| Encryption state | BitLocker (Windows) or FileVault (macOS) status | Encrypted, NotEncrypted, Unknown |
| Last sync date/time | Last successful Intune policy check-in — used to identify stale devices | DateTime — flag devices inactive for >30 days |
Remote Actions Available per Platform
| Remote Action | Windows | iOS/iPadOS | Android | macOS |
|---|---|---|---|---|
| Sync | ✓ | ✓ | ✓ | ✓ |
| Restart | ✓ | ✓ (supervised) | ✓ | ✓ |
| Remote lock | ✓ (BitLocker PIN reset required) | ✓ | ✓ | ✓ |
| Wipe (factory reset) | ✓ | ✓ | ✓ | ✓ |
| Retire (remove corporate data) | ✓ | ✓ | ✓ | ✓ |
| Delete (remove from Intune) | ✓ | ✓ | ✓ | ✓ |
| Rotate BitLocker key | ✓ | — | — | — |
| Collect diagnostics | ✓ | — | — | — |
| Reset passcode | — | ✓ | ✓ | — |
Inventory All Managed Devices & Trigger Remote Actions
Export the complete managed device inventory and perform targeted remote sync and retire operations via Microsoft Graph PowerShell.
Connect-MgGraph -Scopes "DeviceManagementManagedDevices.ReadWrite.All" # Export complete managed device inventory Get-MgDeviceManagementManagedDevice -All -Property DeviceName,OperatingSystem,OSVersion,ComplianceState,LastSyncDateTime,ManagementAgent,JoinType,UserPrincipalName,Manufacturer,Model | Select-Object DeviceName,OperatingSystem,OSVersion,ComplianceState,LastSyncDateTime,ManagementAgent,UserPrincipalName | Export-Csv -Path "ManagedDevices.csv" -NoTypeInformation # Find all non-compliant devices Get-MgDeviceManagementManagedDevice -All -Filter "complianceState eq 'noncompliant'" | Select-Object DeviceName,UserPrincipalName,OperatingSystem,ComplianceState,LastSyncDateTime | Format-Table -AutoSize # Trigger a policy sync on a specific device $Device = Get-MgDeviceManagementManagedDevice -Filter "deviceName eq 'LAPTOP-001'" | Select-Object -First 1 Invoke-MgDeviceManagementManagedDeviceSyncDevice -ManagedDeviceId $Device.Id Write-Host "Sync triggered for: $($Device.DeviceName)" # Retire a device (removes corporate data only) Invoke-MgDeviceManagementManagedDeviceRetire -ManagedDeviceId $Device.Id # Full wipe (factory reset) — use with caution Invoke-MgDeviceManagementManagedDeviceWipe -ManagedDeviceId $Device.Id -KeepEnrollmentData:$false -KeepUserData:$false # Identify stale devices not synced in 30+ days $Cutoff = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddT00:00:00Z") Get-MgDeviceManagementManagedDevice -All -Filter "lastSyncDateTime le $Cutoff" | Select-Object DeviceName,UserPrincipalName,LastSyncDateTime,OperatingSystem | Export-Csv -Path "StaleDevices.csv" -NoTypeInformation
🔄 Module 3: Device Enrollment
The Enrollment section controls how devices are onboarded into Intune management across all supported platforms. Getting enrollment right is the foundation of every Intune deployment — the enrollment method determines what management capabilities are available and what the end-user experience looks like.
Windows Autopilot Deployment Modes
| Autopilot Mode | Use Case | User Interaction | Entra ID Join Type |
|---|---|---|---|
| User-Driven (Azure AD Join) | Cloud-only workforce — user sets up their own device from OOBE | User enters org credentials, device joins Entra ID directly | Azure AD Joined |
| User-Driven (Hybrid Join) | Organisations requiring on-premises domain join via VPN or direct connectivity | User-driven but device joins on-prem AD via Intune connector | Hybrid Azure AD Joined |
| Self-Deploying | Shared devices, kiosks, digital signage — no user interaction at OOBE | Fully automated — device authenticates via TPM 2.0, no credentials required | Azure AD Joined (no user affinity) |
| Pre-Provisioning (White Glove) | IT pre-stages device so user only completes final personalisation step | IT completes device setup phase; user completes user phase at delivery | Azure AD Joined or Hybrid |
| Existing Devices | Migrate existing Windows 7/10 devices managed by ConfigMgr to Intune-managed | Uses task sequence — no user interaction required | Azure AD Joined (post-migration) |
Enrollment Types by Platform
| Platform | Enrollment Type | Management Scope | When to Use |
|---|---|---|---|
| Windows | Autopilot (MDM) | Full device management | New corporate Windows devices from OEM or partner |
| Windows | Manual MDM enrolment via Settings | Full device management | Existing devices not Autopilot-registered |
| iOS/iPadOS | Automated Device Enrollment (ADE/DEP) | Full supervised management | Corporate iPhones/iPads purchased through Apple or reseller |
| iOS/iPadOS | User Enrollment (BYOD) | MAM — personal data separated from work data | Employee-owned iPhones accessing corporate data |
| Android | Android Enterprise — Fully Managed | Full corporate device management | Corporate-owned Android devices with single user |
| Android | Android Enterprise — Work Profile (BYOD) | Work profile isolated from personal apps | Employee-owned Android devices |
| Android | Android Enterprise — Dedicated Device | Locked kiosk mode | Shared corporate devices, kiosks, frontline worker tablets |
| macOS | ADE (Apple Business Manager) | Full supervised MDM management | Corporate Macs purchased through Apple or authorised reseller |
| Linux | MDM (Ubuntu 20.04+ / RHEL 8.4+) | Compliance and configuration | Linux developer machines — limited feature set vs Windows |
Manage Windows Autopilot Devices & Profiles
Retrieve all Autopilot-registered devices, review deployment profiles, and import new hardware hashes from a CSV file for Autopilot registration.
Connect-MgGraph -Scopes "DeviceManagementServiceConfig.ReadWrite.All" # Get all Autopilot-registered devices Get-MgDeviceManagementWindowsAutopilotDeviceIdentity -All | Select-Object SerialNumber,Model,Manufacturer,GroupTag,EnrollmentState,AddressableUserName | Export-Csv -Path "AutopilotDevices.csv" -NoTypeInformation # Get all Autopilot deployment profiles Get-MgDeviceManagementWindowsAutopilotDeploymentProfile | Select-Object DisplayName,DeviceType,HybridAzureADJoinSkipConnectivityCheck | Format-Table -AutoSize # Get enrollment restrictions (device limit and device type) Get-MgDeviceManagementDeviceEnrollmentConfiguration | Select-Object DisplayName,@{N="Type";E={$_.OdataType}},Priority | Sort-Object Priority | Format-Table -AutoSize # Import Autopilot devices from a hardware hash CSV # CSV columns: Device Serial Number, Windows Product ID, Hardware Hash $CSVPath = "C:\IT\AutopilotHashes.csv" $ImportedDevices = Import-AutopilotCSV $CSVPath # Requires WindowsAutopilotIntune module Write-Host "Imported $($ImportedDevices.Count) devices to Autopilot"
💡 Enrollment Status Page (ESP)
The Enrollment Status Page (configured under Windows Enrollment in the Intune portal) shows a progress screen to users during Autopilot provisioning — tracking app and policy installation before the user can access the desktop. Configure block device use until required apps are installed for corporate-owned devices to ensure a fully configured baseline before the user session starts. Always test ESP policies in a pilot group before broad deployment — an overly strict ESP can cause Autopilot to appear stuck if a required app fails to install.
✅ Module 4: Compliance Policies
Compliance policies define the health and security rules that a device must meet to be considered compliant. Intune compliance integrates directly with Microsoft Entra Conditional Access — a non-compliant device can be automatically blocked from accessing corporate resources until it meets the required baseline.
Compliance Policy Components
| Component | Description | Key Settings |
|---|---|---|
| System security settings | Passwords, PINs, encryption requirements | Require password, minimum length, complexity, BitLocker encryption |
| Device health settings | OS integrity and security posture | Require Secure Boot, BitLocker, Code integrity; Defender ATP risk score threshold |
| OS version settings | Minimum and maximum OS versions allowed | Minimum Windows version (e.g. 22H2), maximum version, security patch level |
| Microsoft Defender settings | Antivirus, spyware, firewall, real-time protection | Require Defender Antivirus, real-time protection, spyware protection enabled |
| Compliance policy actions | What happens when a device is non-compliant | Immediately mark non-compliant; send notification email; remotely lock; retire after N days |
| Grace period | Days before non-compliant action takes effect | 0 days = immediate; 1–30 days = time to remediate before Conditional Access blocks |
Audit All Compliance Policies & Report Compliance Status Per Policy
Retrieve all compliance policies across all platforms and generate a per-policy compliance status summary showing compliant, non-compliant, and in-grace-period device counts.
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All","DeviceManagementManagedDevices.Read.All" # Get all compliance policies across all platforms Get-MgDeviceManagementDeviceCompliancePolicy -All | Select-Object DisplayName,@{N="Platform";E={$_.OdataType -replace "#microsoft.graph.","" -replace "CompliancePolicy",""}} | Sort-Object Platform,DisplayName | Format-Table -AutoSize # Per-policy compliance summary $Report = @() $Policies = Get-MgDeviceManagementDeviceCompliancePolicy -All foreach ($Policy in $Policies) { $Summary = Get-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary -DeviceCompliancePolicyId $Policy.Id $Report += [PSCustomObject]@{ Policy = $Policy.DisplayName Compliant = $Summary.CompliantDeviceCount NonCompliant = $Summary.NonCompliantDeviceCount InGracePeriod = $Summary.InGracePeriodCount NotEvaluated = $Summary.NotApplicableDeviceCount Error = $Summary.ErrorDeviceCount } } $Report | Sort-Object NonCompliant -Descending | Format-Table -AutoSize $Report | Export-Csv -Path "ComplianceSummary.csv" -NoTypeInformation
⚠️ Compliance → Conditional Access Integration
Intune compliance alone does not block access. You must create a Conditional Access policy in Microsoft Entra ID that uses Require device to be marked as compliant as a grant control. This is the most frequently misunderstood concept in the MD-102 exam — the compliance policy marks devices compliant or non-compliant, but only a Conditional Access policy enforces the access restriction.
⚙️ Module 5: Configuration Profiles & Settings Catalog
Configuration profiles push device settings to enrolled devices. Intune provides two approaches: Templates (legacy, pre-built categories of settings) and the Settings Catalog (modern, searchable, continuously updated catalogue of all available settings). Microsoft now recommends the Settings Catalog for new policy creation on Windows and macOS.
Configuration Profile Types
| Profile Type | Platform | Use Case | Approach |
|---|---|---|---|
| Settings Catalog | Windows, macOS | Any configurable Windows or macOS setting — searchable, continuously updated | Modern — recommended for new profiles |
| Administrative Templates (ADMX) | Windows | Group Policy-equivalent settings (Office, Edge, Windows) via ADMX files | Template — equivalent to GPO ADMX-backed policies |
| Endpoint Protection | Windows | Windows Defender, BitLocker, Windows Firewall, Exploit Guard, Attack Surface Reduction | Template — security-focused preset categories |
| Device Restrictions | All platforms | Lock down device features: camera, screenshots, Bluetooth, app store access | Template — platform-specific restriction sets |
| iOS, Android, Windows | Configure native email client with Exchange Online settings and S/MIME | Template — email profile categories | |
| VPN | All platforms | Per-app VPN or device-wide VPN (Cisco AnyConnect, GlobalProtect, Always-On VPN) | Template — VPN profile categories |
| Wi-Fi | All platforms | Pre-configure SSID, authentication (WPA2-Enterprise, certificates) | Template — Wi-Fi profile categories |
| Custom (OMA-URI) | Windows, Android, iOS | Settings not yet exposed in the Settings Catalog — raw OMA-DM/CSP paths | Template — raw CSP configuration |
| Scripts (PowerShell) | Windows | Run PowerShell scripts once or repeatedly for configurations beyond MDM CSPs | Scripts and remediations — run in SYSTEM or User context |
Audit All Configuration Profiles & Settings Catalog Policies
Report on all configuration profiles and Settings Catalog policies, including their assignment status and platform, to identify policy gaps or conflicts.
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All" # Get all legacy configuration profiles (Templates) Get-MgDeviceManagementDeviceConfiguration -All | Select-Object DisplayName,@{N="Type";E={$_.OdataType -replace "#microsoft.graph.",""}},LastModifiedDateTime | Sort-Object Type,DisplayName | Format-Table -AutoSize # Get all Settings Catalog policies (modern approach) Get-MgDeviceManagementConfigurationPolicy -All | Select-Object Name,Description,Platforms,Technologies,SettingCount,LastModifiedDateTime | Sort-Object Name | Format-Table -AutoSize # Get assignment status for a specific configuration profile $ProfileId = "profile-guid-here" Get-MgDeviceManagementDeviceConfigurationDeviceStatus -DeviceConfigurationId $ProfileId | Group-Object Status | Select-Object Name,Count | Format-Table -AutoSize # Detect profiles with assignment conflicts Get-MgDeviceManagementDeviceConfiguration -All | ForEach-Object { $Statuses = Get-MgDeviceManagementDeviceConfigurationDeviceStatus -DeviceConfigurationId $_.Id $Conflicts = $Statuses | Where-Object {$_.Status -eq "conflict"} if ($Conflicts) { Write-Host "CONFLICT: $($_.DisplayName) - $($Conflicts.Count) device(s)" -ForegroundColor Yellow } }
📱 Module 6: App Deployment
The Apps section manages deployment of all application types to enrolled devices. Intune supports required deployment (pushed automatically), available deployment (visible in Company Portal), and uninstall actions across Windows, iOS, Android, and macOS.
Intune App Types Comparison
| App Type | Platform | Deployment Method | Best For |
|---|---|---|---|
| Win32 App (.intunewin) | Windows | Packaged with IntuneWinAppUtil.exe — supports complex install logic, detection rules, dependencies | Most Windows applications — the most capable and flexible type |
| Microsoft Store App (new) | Windows | Deployed from Microsoft Store — auto-updates, no packaging required | Store apps including Teams, Company Portal, M365 Apps (via WinGet) |
| Line-of-Business (LOB) | Windows (.msi/.msix), iOS (.ipa), Android (.apk) | Upload installer directly to Intune — no detection rules, limited options vs Win32 | Simple MSI or MSIX deployments; legacy iOS/Android apps |
| Web App (link) | All platforms | Shortcut to a URL — creates icon on device that opens browser | SaaS web apps, intranet shortcuts via Company Portal |
| iOS/iPadOS App Store | iOS/iPadOS | Volume Purchase Program (VPP/Apple Business Manager) for licensed deployment | Corporate Apple App Store apps with VPP token |
| Android Enterprise App | Android | Managed Google Play store — approved apps pushed from Managed Google Play | All Android Enterprise app deployments |
| macOS App (DMG/PKG) | macOS | Upload DMG or PKG installer — deployed via Intune MDM agent | macOS applications (.dmg or wrapped .pkg) |
Audit All Intune-Managed Apps & Check Installation Status
Report on every app deployed through Intune and check installation status across devices to identify failed deployments that need remediation.
Connect-MgGraph -Scopes "DeviceManagementApps.Read.All" # Get all apps in Intune with type Get-MgDeviceAppManagementMobileApp -All | Select-Object DisplayName,@{N="Type";E={$_.OdataType -replace "#microsoft.graph.",""}},IsFeatured,PublishedDate | Sort-Object Type,DisplayName | Format-Table -AutoSize # Get apps with failed installations across devices $AppId = "app-guid-here" Get-MgDeviceAppManagementMobileAppDeviceStatus -MobileAppId $AppId | Where-Object {$_.InstallState -eq "failed"} | Select-Object DeviceName,UserPrincipalName,InstallState,InstallStateDetail,LastSyncDateTime | Format-Table -AutoSize # Get all app assignments for a specific app Get-MgDeviceAppManagementMobileAppAssignment -MobileAppId $AppId | Select-Object Intent,@{N="TargetGroup";E={$_.Target.GroupId}} | Format-Table -AutoSize # Count apps by type Get-MgDeviceAppManagementMobileApp -All | Group-Object @{E={$_.OdataType -replace "#microsoft.graph.",""}} | Select-Object Name,Count | Sort-Object Count -Descending | Format-Table -AutoSize
🛡️ Module 7: App Protection Policies (MAM)
App Protection Policies (APP) — also called Mobile Application Management (MAM) — protect corporate data within managed apps without requiring full device enrollment. MAM-WE (MAM Without Enrollment) is particularly powerful for BYOD scenarios where users refuse to enrol their personal device but still need access to corporate email and files.
MAM vs MDM Comparison
| Aspect | MDM (Device Enrollment) | MAM (App Protection Only) |
|---|---|---|
| Device enrollment required | Yes — device must be enrolled in Intune | No — app can be protected on any device (BYOD-friendly) |
| Corporate data control | Full device wipe removes all data | Selective wipe — corporate data only, personal data untouched |
| Supported apps | All apps on device | Only Intune SDK-enabled apps (Outlook, Teams, OneDrive, Edge, Office) |
| Cut/copy/paste control | Requires device restrictions policy | Controlled per-app — no paste from managed to unmanaged app |
| PIN requirement | Device-level PIN policy | App-level PIN independent of device PIN — separate credential |
| Data transfer controls | Limited without per-app VPN | Granular — restrict save-as, open-from, sharing, printing per app |
Audit App Protection Policies & Trigger Selective Wipe
List all MAM policies, check which users have registered managed apps, and issue a selective wipe to remove corporate data from a specific user’s apps without touching personal data.
Connect-MgGraph -Scopes "DeviceManagementApps.ReadWrite.All" # Get all App Protection Policies (MAM) Get-MgDeviceAppManagementManagedAppPolicy -All | Select-Object DisplayName,@{N="Platform";E={$_.OdataType -replace "#microsoft.graph.",""}} | Format-Table -AutoSize # Find all users with MAM-registered apps $UserId = (Get-MgUser -Filter "UserPrincipalName eq 'user@contoso.com'").Id Get-MgUserManagedAppRegistration -UserId $UserId -All | Select-Object AppIdentifier,DeviceName,DeviceType,CreatedDateTime,LastSyncDateTime | Format-Table -AutoSize # Issue a MAM selective wipe — removes corporate data from all managed apps $Registrations = Get-MgUserManagedAppRegistration -UserId $UserId -All foreach ($Reg in $Registrations) { Invoke-MgWipeUserManagedAppRegistration -UserId $UserId -ManagedAppRegistrationId $Reg.Id Write-Host "Selective wipe issued for: $($Reg.AppIdentifier) on $($Reg.DeviceName)" }
🛡️ Module 8: Endpoint Security
The Endpoint Security section provides dedicated policy management for security-focused workloads. It brings together BitLocker encryption, Windows Defender Antivirus, Windows Firewall, Endpoint Detection & Response (EDR), Attack Surface Reduction (ASR) rules, and Security Baselines in a single purpose-built blade.
Security Baselines Available in Intune
| Baseline | Coverage | Update Cadence | MD-102 Relevance |
|---|---|---|---|
| Windows MDM Security Baseline | OS hardening — account policy, auditing, IE settings, Windows Defender, firewall | Updated with each Windows feature release | High — primary baseline for Windows endpoints |
| Microsoft 365 Apps for Enterprise | Office security settings — macro policy, ActiveX, DDE, Trust Center settings | Updated annually — tied to M365 Apps release | High — tested heavily on MD-102 |
| Microsoft Edge Security Baseline | Edge browser security — password manager, SmartScreen, certificate warnings | Updated with each stable Edge channel release | Medium — browser security settings |
| Defender for Endpoint Security Baseline | MDE-specific settings — attack surface reduction, tamper protection, EDR settings | Updated with MDE feature updates | High — requires MDE licence (E5 or add-on) |
Report on BitLocker Encryption Status & Retrieve Recovery Keys
Check BitLocker encryption status across all Windows devices and retrieve the BitLocker recovery keys stored in Microsoft Entra ID — essential for device recovery without data loss.
Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All","BitlockerKey.Read.All" # Get BitLocker encryption state for all Windows devices Get-MgDeviceManagementManagedDevice -All -Filter "operatingSystem eq 'Windows'" -Property DeviceName,UserPrincipalName,EncryptionState | Select-Object DeviceName,UserPrincipalName,EncryptionState | Sort-Object EncryptionState | Format-Table -AutoSize # Count encrypted vs unencrypted Windows devices Get-MgDeviceManagementManagedDevice -All -Filter "operatingSystem eq 'Windows'" -Property EncryptionState | Group-Object EncryptionState | Select-Object Name,Count | Format-Table -AutoSize # Get all BitLocker recovery keys stored in Entra ID Get-MgInformationProtectionBitlockerRecoveryKey -All | Select-Object Id,DeviceId,VolumeType,CreatedDateTime | Sort-Object CreatedDateTime -Descending | Format-Table -AutoSize # Retrieve recovery key for a specific device $DeviceEntraId = "entra-device-guid-here" Get-MgInformationProtectionBitlockerRecoveryKey -Filter "deviceId eq '$DeviceEntraId'" | ForEach-Object { $Key = Get-MgInformationProtectionBitlockerRecoveryKey -BitlockerRecoveryKeyId $_.Id -Property Key Write-Host "Recovery Key: $($Key.Key)" }
🔄 Module 9: Windows Update Management
Intune provides Windows Update for Business (WUfB) integration through Update rings for Windows and Feature update policies. This replaces on-premises WSUS for cloud-managed devices, giving administrators control over update deferral periods, maintenance windows, and forced restart behaviour.
Windows Update Ring Key Settings
| Setting | Description | Recommended Value |
|---|---|---|
| Servicing channel | Which Windows update channel devices receive updates from | General Availability (Semi-Annual) for most corporate devices |
| Quality update deferral (days) | Days to delay monthly security/quality updates after release | 0–7 days for pilot ring; 14–21 days for broad ring; 28 days for sensitive ring |
| Feature update deferral (days) | Days to delay new Windows feature releases (annual/biannual) | 0 days for pilot; 90 days for broad; 180 days for sensitive |
| Automatic update behaviour | How Intune handles update installation and restart | Auto install and restart at maintenance window — most predictable |
| Active hours start/end | Period when device should not restart for updates | Typical business hours 8 AM – 6 PM — restart windows outside these hours |
| Restart grace period (hours) | Time after which Intune forces a pending restart | 2–4 hours for most environments — balances user experience vs update compliance |
| Update deadline grace period (days) | Days before enforcement after quality update becomes mandatory | 2–7 days — allows users to save work before forced restart |
Audit Windows Update Rings & Feature Update Policies
Retrieve all Windows Update ring configurations and feature update deployment profiles, and check update deployment status per ring to identify devices behind on updates.
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All" # Get all Windows Update for Business (WUfB) rings Get-MgDeviceManagementDeviceConfiguration -All | Where-Object {$_.OdataType -like "*windowsUpdateForBusiness*"} | Select-Object DisplayName,LastModifiedDateTime | Format-Table -AutoSize # Get feature update deployment profiles Get-MgDeviceManagementWindowsFeatureUpdateProfile -All | Select-Object DisplayName,FeatureUpdateVersion,RolloutSettings | Format-Table -AutoSize # Get update ring deployment status per ring $Rings = Get-MgDeviceManagementDeviceConfiguration -All | Where-Object {$_.OdataType -like "*windowsUpdateForBusiness*"} foreach ($Ring in $Rings) { Write-Host "`n=== $($Ring.DisplayName) ===" -ForegroundColor Cyan Get-MgDeviceManagementDeviceConfigurationDeviceStatus -DeviceConfigurationId $Ring.Id | Group-Object Status | Select-Object Name,Count | Format-Table -AutoSize } # Get quality update (expedited) policies Get-MgDeviceManagementWindowsQualityUpdateProfile -All | Select-Object DisplayName,ReleaseDateDisplayName | Format-Table -AutoSize
💡 Update Ring Deployment Strategy — Pilot → Broad → Sensitive
Always deploy update rings in rings — a minimum of three: Pilot (IT team, 2–5% of devices, 0-day deferral), Broad (main workforce, 14–21 day deferral), and Sensitive (executives, VIPs, critical systems, 28-day+ deferral). Assign rings to Entra ID security groups and use assignment filters to target by device properties (OS version, model, etc.) rather than hard-coded group membership wherever possible.
📊 Module 10: Reports & Endpoint Analytics
The Reports section provides operational and strategic visibility into device compliance, configuration policy success, and user experience quality. Endpoint Analytics is the most strategic reporting capability — it measures and benchmarks the actual user experience across your device estate against similar organisations.
Key Intune Reports
| Report | What It Shows | Data Retention | Access Path |
|---|---|---|---|
| Device compliance | Per-device compliance status across all policies — drilldown to individual settings | Real-time | Reports → Device compliance |
| Device configuration | Profile assignment success, failure, conflict counts per device and per profile | Real-time | Reports → Device configuration |
| App install status | Required app installation success/failure per app and per device | Real-time | Reports → Device management → App install status |
| Update compliance | Windows devices compliant with quality and feature update targets | Real-time | Reports → Windows updates |
| Endpoint Analytics — Startup score | Average Windows boot and logon time vs organisational peer benchmark | Rolling 14 days | Reports → Endpoint analytics → Startup performance |
| Endpoint Analytics — App reliability | App crash rate and mean-time-to-failure per app across device estate | Rolling 14 days | Reports → Endpoint analytics → App reliability |
| Endpoint Analytics — Work from anywhere | Cloud-readiness score — Autopilot readiness, Entra ID join ratio, cloud management ratio | Rolling snapshot | Reports → Endpoint analytics → Work from anywhere |
| Proactive remediations (detection) | Script detection run results — how many devices have issues detected vs remediated | Real-time | Devices → Scripts and remediations |
Export Device Compliance & Configuration Reports via Graph API
Programmatically export device compliance and configuration reports from Intune using the Graph reporting API — useful for custom dashboards, scheduled governance reports, and SIEM integration.
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All","DeviceManagementManagedDevices.Read.All" # Request a device compliance export job (async) $ExportBody = @{ reportName = "DeviceCompliance" filter = "" select = @("DeviceName","UPN","OS","OSVersion","ComplianceState","LastContact","DeviceId") format = "csv" } | ConvertTo-Json $ExportJob = Invoke-MgGraphRequest -Method POST ` -Uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs" ` -Body $ExportBody -ContentType "application/json" Write-Host "Export Job ID: $($ExportJob.id) | Status: $($ExportJob.status)" # Poll for job completion (retry every 15 seconds) do { Start-Sleep -Seconds 15 $JobStatus = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/$($ExportJob.id)" Write-Host "Job status: $($JobStatus.status)" } while ($JobStatus.status -ne "completed") # Download the CSV from the generated URL Invoke-WebRequest -Uri $JobStatus.url -OutFile "DeviceCompliance.zip" Write-Host "Report downloaded to DeviceCompliance.zip" # Get real-time non-compliant device list directly Get-MgDeviceManagementManagedDevice -All -Filter "complianceState eq 'noncompliant'" -Property DeviceName,UserPrincipalName,OperatingSystem,ComplianceState,LastSyncDateTime | Export-Csv -Path "NonCompliantDevices.csv" -NoTypeInformation
🔑 Module 11: Tenant Administration & RBAC
The Tenant administration section manages the operational governance of your Intune environment — administrator roles (RBAC), scope tags for delegation, audit log review, connectors to Apple and Google services, and tenant-level customisation of the Company Portal app.
Built-in Intune RBAC Roles
| Role | Permissions | Typical Assignee |
|---|---|---|
| Intune Service Administrator | Full Intune administration — equivalent to Global Admin scoped to Intune | Lead endpoint engineer, Intune platform owner |
| Read Only Operator | Read-only access to all Intune objects — no create, modify, or remote actions | Auditors, compliance reviewers, observing managers |
| Help Desk Operator | View devices, view users, perform remote actions (sync, lock, wipe) — no policy create/modify | Tier 1/2 support staff for device troubleshooting |
| Application Manager | Create, modify, assign, and delete apps and app policies — no device management | Application packaging and deployment team |
| Policy and Profile Manager | Create and manage compliance policies and configuration profiles — no app management | Endpoint configuration engineers |
| Endpoint Security Manager | Full Endpoint Security node — security baselines, antivirus, BitLocker, EDR | Security operations team, endpoint security engineers |
| School Administrator | Manage devices and apps in education tenant scenarios | IT administrators in education institutions |
Audit Intune RBAC Roles & Review Audit Log Events
List all Intune role definitions and assignments, and review the audit log for admin actions taken in the past 7 days — critical for security incident investigation and compliance evidence.
Connect-MgGraph -Scopes "DeviceManagementRBAC.Read.All","DeviceManagementConfiguration.Read.All" # Get all Intune role definitions (built-in and custom) Get-MgDeviceManagementRoleDefinition -All | Select-Object DisplayName,IsBuiltIn,Description | Sort-Object IsBuiltIn -Descending,DisplayName | Format-Table -AutoSize # Get all role assignments (who has what role with which scope) Get-MgDeviceManagementRoleAssignment -All | Select-Object DisplayName,ScopeType,ScopeMembers | Format-Table -AutoSize # Get Intune audit events for the past 7 days $Since = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddT00:00:00Z") Get-MgDeviceManagementAuditEvent -Filter "activityDateTime ge $Since" -All | Select-Object DisplayName,ActivityType,@{N="Actor";E={$_.Actor.UserPrincipalName}},ActivityDateTime,ActivityResult | Sort-Object ActivityDateTime -Descending | Format-Table -AutoSize # Export all audit events to CSV for compliance reporting Get-MgDeviceManagementAuditEvent -Filter "activityDateTime ge $Since" -All | Select-Object DisplayName,ActivityType,@{N="Actor";E={$_.Actor.UserPrincipalName}},ActivityDateTime,ActivityResult,Category | Export-Csv -Path "IntuneAuditLog7Days.csv" -NoTypeInformation Write-Host "Audit log exported."
💡 Scope Tags for Delegated Administration
Scope tags are Intune RBAC labels that control visibility — an administrator assigned a scope tag can only see and manage objects tagged with the same scope tag. This enables delegated regional or departmental administration without giving full Intune visibility. For example, tag all EMEA devices, policies, and apps with an EMEA scope tag and assign it to your EMEA IT team — they can fully manage EMEA resources without seeing any other region. Scope tags are one of the most frequently tested MD-102 RBAC concepts.
🎓 Module 12: MD-102 Certification Alignment
The MD-102: Microsoft 365 Certified Endpoint Administrator Associate certification validates your ability to deploy, manage, and protect Windows devices and Microsoft 365 apps using Microsoft Intune. This entire course guide maps to the MD-102 exam skill areas.
MD-102 Exam Domain Weightings & Course Coverage
Deploy Windows Client
Windows Autopilot modes, Autopilot profiles, ESP, hybrid join vs Azure AD join, imaging, Windows 365 Cloud PC provisioning — Modules 1, 3
Manage Identity and Compliance
Entra ID Conditional Access integration, compliance policies per platform, grace periods, non-compliance actions, RBAC and scope tags — Modules 4, 11
Manage, Maintain, and Protect Devices
Configuration profiles, Settings Catalog, Endpoint Security (BitLocker, Defender, Firewall, ASR), Update rings, remote actions, troubleshooting — Modules 2, 5, 8, 9, 10
Manage Apps and Data
App deployment types, Win32 app packaging, MAM policies, MAM without enrollment, selective wipe, app configuration policies — Modules 6, 7
✅ MD-102 Exam Study Tips
- Understand all Windows Autopilot deployment modes precisely — User-Driven vs Self-Deploying vs Pre-Provisioning; what TPM 2.0 requirement applies to; and when hybrid join requires the Intune Connector for Active Directory
- Know the exact difference between Wipe, Retire, and Delete — wipe factory resets, retire removes corporate data only, delete removes from Intune but does not touch the device
- Understand Compliance → Conditional Access integration — compliance policy alone never blocks access; a separate Entra ID Conditional Access policy must use “Require device to be marked as compliant” as the grant control
- Know the difference between MAM with enrollment vs MAM without enrollment (MAM-WE) and when to use each — BYOD users on personal devices are the primary MAM-WE scenario
- Study Settings Catalog vs Templates — Microsoft recommends Settings Catalog for all new Windows and macOS profiles; Templates exist for backward compatibility
- Understand Scope tags in depth — how they are created, assigned to objects, and assigned to admin roles; what happens when an admin without a scope tag tries to manage a tagged object
- Practice all PowerShell in a Microsoft 365 Developer Tenant (free 90-day sandbox at developer.microsoft.com/microsoft-365/dev-program) using the Microsoft Graph PowerShell module
- Review the official MD-102 Study Guide on Microsoft Learn and map each skill to the modules in this guide
💡 Best Practices Summary
- Use Windows Autopilot for all new device procurement — register hardware hashes with your tenant via OEM or Microsoft 365 admin centre; avoid manual imaging wherever possible
- Always deploy compliance policies with a grace period of at least 1 day for new policy rollouts — gives devices time to check in and become compliant before Conditional Access blocks access
- Prefer the Settings Catalog over legacy Templates for all new Windows and macOS configuration profiles — it receives new settings faster and is searchable across the full CSP catalogue
- Implement at least three update rings (Pilot → Broad → Sensitive) with staged deferral periods — never deploy quality updates with zero deferral to all devices simultaneously
- Enable BitLocker via Endpoint Security → Disk Encryption policy rather than the legacy Device Restrictions template — the Endpoint Security blade provides superior status reporting and recovery key management
- Use scope tags and custom RBAC roles to delegate administration to regional or departmental IT teams — never give Intune Service Administrator to operational support staff
- Review the Intune audit log weekly — export to SIEM or Log Analytics for automated alerting on bulk remote wipe actions, policy deletions, or role assignment changes
- Deploy MAM App Protection Policies for iOS and Android BYOD users as the minimum baseline — MAM-WE is significantly less intrusive than MDM enrollment and achieves good data protection for most BYOD scenarios
- Monitor Endpoint Analytics startup scores monthly — devices with low startup scores identify hardware that may need replacement before user productivity is significantly impacted
- Always configure Company Portal branding under Tenant administration → Customization — a branded Company Portal increases end-user trust and reduces helpdesk calls during self-service enrollment
📚 References & Further Reading
- 🔗 Microsoft Intune Documentation — Microsoft Learn
- 🔗 MD-102: Endpoint Administrator Certification — Microsoft Learn
- 🔗 Windows Autopilot Documentation — Microsoft Learn
- 🔗 Security Baselines in Intune — Microsoft Learn
- 🔗 App Protection Policies Overview — Microsoft Learn
- 🔗 Endpoint Analytics Documentation — Microsoft Learn
- 🔗 Microsoft Graph PowerShell SDK — Microsoft Learn
- 🔗 Microsoft Intune Admin Center — intune.microsoft.com
- 🔗 Microsoft 365 Developer Program (Free Lab Tenant) — developer.microsoft.com
