Skip to content

Compliance Policies

Compliance policies define the rules a device must meet to be considered compliant. Non-compliant devices can be blocked from accessing Microsoft 365 resources via Conditional Access.

Intune admin center → Devices → Compliance


Windows Compliance Policy

Create a policy for Windows 10 and later:

Intune admin center → Devices → Compliance → Create policy → Windows 10 and later

Device Health

Setting Value
Require BitLocker Require
Require Secure Boot to be enabled Require
Require code integrity Require

Device Properties

Setting Value
Minimum OS version 10.0.19041 (Windows 10 2004 minimum)
Maximum OS version Leave blank

System Security

Setting Value
Require a password to unlock mobile devices Require
Simple passwords Block
Password type Alphanumeric
Minimum password length 8
Maximum minutes of inactivity before password is required 5
Firewall Require
Antivirus Require
Antispyware Require
Microsoft Defender Antimalware Require
Microsoft Defender Antimalware minimum version 4.18
Microsoft Defender Antimalware security intelligence up-to-date Require
Real-time protection Require

Microsoft Defender for Endpoint (if licenced)

Setting Value
Require the device to be at or under the machine risk score Medium or Low

Actions for non-compliance

Action Schedule
Mark device non-compliant Immediately
Send email to end user 1 day
Retire non-compliant device 30 days (optional, adjust per policy)

iOS / iPadOS Compliance Policy

Device Health

Setting Value
Jailbroken devices Block

Device Properties

Setting Value
Minimum OS version 16.0

System Security

Setting Value
Require a password to unlock mobile devices Require
Simple passwords Block
Minimum password length 6
Maximum minutes after screen lock before password is required 5
Maximum minutes of inactivity until screen locks 2
Password expiration (days) 365
Number of previous passwords to prevent reuse 5
Encryption of data storage on device Require

Android Enterprise Compliance Policy

Device Health

Setting Value
Rooted devices Block
Require the device to be at or under the device threat level Medium (if Defender for Endpoint is integrated)

Device Properties

Setting Value
Minimum OS version 12.0

System Security

Setting Value
Require a password to unlock mobile devices Require
Required password type Numeric complex or Alphanumeric
Minimum password length 6
Maximum minutes of inactivity before password required 5
Encryption of data storage on device Require
Block apps from unknown sources Block
Company Portal app integrity Require
Google Play Protect Require

macOS Compliance Policy

Setting Value
System Integrity Protection (SIP) Require
Firewall Require
FileVault Require
Minimum OS version 13.0 (Ventura)
Password required Require
Minimum password length 8

Compliance Grace Period

Configure a grace period to give users time to remediate before being blocked:

Intune admin center → Devices → Compliance → Compliance settings

Setting Value
Enhanced jailbreak detection Enabled
Compliance status validity period 30 days (devices must check in within this period)

Monitoring Compliance

# Install Microsoft Graph PowerShell if needed
Install-Module Microsoft.Graph -Scope CurrentUser

Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All"

# Get all non-compliant devices
Get-MgDeviceManagementManagedDevice -Filter "complianceState eq 'noncompliant'" -All |
    Select-Object DeviceName, UserPrincipalName, OperatingSystem, ComplianceState, LastSyncDateTime |
    Sort-Object LastSyncDateTime -Descending

# Get compliance summary by platform
Get-MgDeviceManagementManagedDevice -All |
    Group-Object OperatingSystem |
    ForEach-Object {
        $os = $_.Name
        $total = $_.Count
        $compliant = ($_.Group | Where-Object { $_.ComplianceState -eq "compliant" }).Count
        [PSCustomObject]@{ OS = $os; Total = $total; Compliant = $compliant; NonCompliant = ($total - $compliant) }
    }