Microsoft Intune Administration: Complete Practical Course — Matching the Intune Admin Center & MD-102 Certification

📘 Course Guide

Microsoft Intune Administration: Complete Practical Course — Matching the Intune Admin Center & MD-102 Certification

This course guide maps directly to the Microsoft Intune Admin Center (intune.microsoft.com) — every section visible in the left navigation is covered here as a practical module. Whether you are preparing for the MD-102: Microsoft 365 Certified Endpoint Administrator certification or managing a live Intune environment, this guide delivers hands-on knowledge, real admin tasks, and Microsoft Graph PowerShell commands for each functional area.

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.

1

Intune Admin Center Overview

Dashboard cards, navigation structure, tenant status, and key operational views

2

Devices — All Devices & Remote Actions

Device inventory, properties, remote actions: sync, lock, wipe, retire, restart

3

Device Enrollment

Windows Autopilot modes, Apple ADE, Android Enterprise, enrollment restrictions, ESP

4

Compliance Policies

Per-platform compliance rules, grace periods, non-compliance actions, Conditional Access integration

5

Configuration Profiles & Settings Catalog

Templates vs Settings Catalog, ADMX-backed policies, OMA-URI, assignment filters

6

App Deployment

Win32, LOB, Microsoft Store, web apps — required vs available vs uninstall assignments

7

App Protection Policies (MAM)

MAM-WE, data transfer settings, access requirements, conditional launch, selective wipe

8

Endpoint Security

Security baselines, BitLocker, Defender Antivirus, Firewall, EDR, Attack Surface Reduction

9

Windows Update Management

Update rings, feature updates, expedited updates, quality update deferral

10

Reports & Endpoint Analytics

Device compliance reports, Endpoint Analytics, startup performance, app reliability

11

Tenant Administration & RBAC

Built-in and custom roles, scope tags, audit events, connectors and tokens

12

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

🏠 Home
💻 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
1

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.

PowerShell — Microsoft Graph (Intune)

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
2

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.

PowerShell — Microsoft Graph (Intune)

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
3

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.

PowerShell — Microsoft Graph (Intune)

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
Email 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
4

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.

PowerShell — Microsoft Graph (Intune)

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)
5

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.

PowerShell — Microsoft Graph (Intune)

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
6

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.

PowerShell — Microsoft Graph (Intune)

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)
7

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.

PowerShell — Microsoft Graph (Intune + Entra)

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
8

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.

PowerShell — Microsoft Graph (Intune)

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
9

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.

PowerShell — Microsoft Graph (Intune Reports API)

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
10

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.

PowerShell — Microsoft Graph (Intune)

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: Microsoft 365 Certified Endpoint Administrator Associate

MD-102 Exam Domain Weightings & Course Coverage

25%

Deploy Windows Client

Windows Autopilot modes, Autopilot profiles, ESP, hybrid join vs Azure AD join, imaging, Windows 365 Cloud PC provisioning — Modules 1, 3

20%

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

40%

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

15%

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

Leave a Comment

Your email address will not be published. Required fields are marked *