Skip to content
February 27, 2026 • Mid-Level (3-5 years) How-To

Intune Compliance Policies Explained

By Last updated

Configure Intune device compliance policies. Set up conditions for access, conditional access, and device health.

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

Step-by-step guide

Intune Compliance Policies Explained

Compliance policies in Intune define what makes a device “healthy” and secure. Combined with Conditional Access, they control device access to resources.

What Are Compliance Policies?

Rules that devices must meet to:

  • Access corporate resources
  • Use conditional access
  • Be considered “managed”

Creating a Policy

  1. Microsoft Endpoint Manager → Devices → Compliance policies
  2. Create policy → Windows 10 and later
  3. Set conditions and actions

Key Settings

Device Health

SettingOptionsRecommended
BitLockerRequireYes
Secure BootRequireYes
Code IntegrityRequireYes
Device Health AttestationRequireYes

Device Properties

# Via Graph
$Policy = @{
    "@odata.type" = "#microsoft.graph.windows10CompliancePolicy"
    deviceThreatProtectionRequiredSecurityLevel = " Secured"
    bitLockerEnabled = $true
    secureBootEnabled = $true
    codeIntegrityEnabled = $true
}

System Security

SettingValue
Password typeAlphanumeric
Minimum password length14
Password age (days)60
Device passwordRequired

Microsoft Defender

# Require Defender
defenderEnabled = $true
defenderVersion = "latest"

Compliance Actions

When device is non-compliant:

ActionWhat Happens
Mark as non-compliantVisual indicator
Send email to userNotification
Wipe deviceFull reset
Retire deviceRemove from Intune

Conditional Access Integration

Compliance + Conditional Access = Access Control

# Example: Require compliant device for Exchange
# 1. Create compliance policy (above)
# 2. Create conditional access policy in Azure AD:
#   - Grant: Require device to be marked as compliant
#   - Apps: Exchange Online
#   - Users: All users

Monitoring Compliance

# Check compliance status
Get-MgDeviceManagementDeviceCompliancePolicyState -DeviceId $DeviceId

# Get all compliant/non-compliant
Get-MgDeviceManagementDeviceCompliancePolicyState -All | 
    Where-Object { $_.ComplianceState -eq "noncompliant" }

Wrap-Up

Compliance policies are your first line of defense. Define healthy, require it with Conditional Access, and monitor compliance.

Questions? Drop them below!

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

#intune #compliance #conditional-access #security