Implementation recipe
Company Windows laptops reach company data only when they are compliant
Every Windows laptop that signs in to company email, files and apps is enrolled in Intune, passes a compliance policy you wrote, and is refused when it does not, including a laptop that is enrolled but has no policy assigned.
From vendor documentation, not run by Expert CMMC.
Each setting below quotes the vendor’s own page with the date it was read. Expert CMMC has not run this configuration. Run the tests at the end on your own systems before you rely on it.
Last reviewed November 12, 2026.
Before you choose this example
What this recipe was written against, what it needs, and whether its cryptography is established for CUI. Read this before the configuration: it decides whether the example fits you.
Written against
- Windows 11 laptops and desktops joined to Microsoft Entra ID and enrolled in Intune, with the Windows compliance settings as Microsoft's page describes them (updated 2026-09-17).
- Sign-in in a browser that passes the device's identity to Entra ID (Microsoft's list is under Rolling it out): Edge signed in with the work account, Chrome with the Microsoft Single Sign On extension or CloudAPAuthEnabled, or Firefox with Windows single sign-on allowed.
- Conditional Access with the grant control Require device to be marked as compliant, as Microsoft's pages describe it on 2026-11-11 and 2026-11-12. Those are the global (commercial) service's pages; whether every setting below behaves the same in a US Government tenant was not checked.
- A Minimum OS version that Microsoft still services: on 2026-11-12, Windows 11 25H2 (OS build 26200) for Pro and Enterprise; 24H2 (26100) only for Enterprise and Education.
Licences and management components
- Intune: a device compliance policy for each platform that signs in, and the tenant-wide compliance policy settings.
- Microsoft Entra ID Conditional Access.
- Company Portal on each laptop, to show status and to sync.
- The licences are under Before you start, from the product catalog.
Cryptography, end by end
The laptop's drive (Require BitLocker only checks that BitLocker is on): not established
- Module and certificate
- This recipe checks that BitLocker is on; it does not establish a certificate. The encryption recipe's Case 1 found, on 2026-11-12, no Windows 11 version that Microsoft still services with modules listed on Microsoft's FIPS 140 page.
- Operating environment
- The Windows version and build each laptop runs (the Minimum OS version below).
- Required configuration
- As the encryption recipe says: the rules in each module's security policy, not read here.
- Look up before relying on it for CUI
- The encryption recipe's Before you choose this example, for each Windows version you allow.
Sign-in to Microsoft's cloud services (Entra ID, Intune): not established
- Module and certificate
- Not examined: this recipe decides which devices may sign in, not how Microsoft's services protect the connection or the data.
- Operating environment
- Microsoft's cloud service for your tenant.
- Required configuration
- Not examined.
- Look up before relying on it for CUI
- Before CUI goes into a cloud service: what Microsoft states for the service and tenant you use.
Not suitable when
- Personal devices you mean to let in with app protection instead of enrolment: this recipe refuses them.
- Laptops without TPM 2.0: Require Secure Boot reports them Not Compliant.
- Access that does not sign in through Entra ID (Windows sign-in on the laptop itself, local file shares, a VPN with another identity source): this recipe does not reach it.
- A tenant that already has a compliance-based Conditional Access policy On and devices with no compliance policy: assign their policies before changing the tenant setting (below).
- Windows 10 computers: Windows 10 22H2 is OS build 19045, below any Windows 11 minimum this recipe sets, so they are refused. Microsoft ended Windows 10 support on October 14, 2025.
- People who sign in from a browser that cannot pass device identity, a private window or a browser with cookies off: they are refused. This includes other sign-ins made in a browser, such as the VPN recipe's sign-in in the browser FortiClient opens, because the policy covers All resources.
- A tenant in Microsoft's US Government cloud: the pages quoted here are the global service's; check each setting on Microsoft's US Government pages first.
Stays with you, whichever product you use
- The settings, the minimum Windows build, the validity period and any grace period, recorded in your baseline.
- Following up each noncompliant device.
- The emergency access accounts, their credentials and their tests.
- Your system security plan's description of which devices are allowed and how the rest are refused.
“Support dates are shown in the Pacific Time Zone (PT) - Redmond, WA, USA. … Version 25H2 9/30/2025 8:00:00 AM 10/13/2027 6:59:59 AM Version 24H2 10/1/2024 8:00:00 AM 10/14/2026 6:59:59 AM”
“Version 25H2 9/30/2025 8:00:00 AM 10/11/2028 6:59:59 AM Version 24H2 10/1/2024 8:00:00 AM 10/13/2027 6:59:59 AM”
“Version 25H2 (OS build 26200) … Version 24H2 (OS build 26100)”
“On October 14, 2025, Windows 10 reached end of support. … Version 22H2 (OS build 19045)”
“Windows 10 + Microsoft Edge, Chrome, Firefox 91+ … These browsers support device authentication, allowing the device to be identified and validated against a policy. The device check fails if the browser is running in private mode or if cookies are disabled. Note Microsoft Edge 85+ requires the user to be signed in to the browser to properly pass device identity. Otherwise, it behaves like Chrome without the Microsoft Single Sign On extension. … Firefox 91+ is supported for device-based Conditional Access, but "Allow Windows single sign-on for Microsoft, work, and school accounts" needs to be enabled. … For Chrome support in Windows 10 Creators Update (version 1703) or later, install the Microsoft Single Sign On extension or enable Chrome's CloudAPAuthEnabled.”
Practices this supports
Following this recipe supports these practices and objectives. It does not by itself meet any of them: each practice also needs what its page lists (policy, procedure, evidence and the parts this recipe leaves to you).
- AC.L1-b.1.i[c] [f]Intune's device list identifies the devices allowed to connect, and Conditional Access limits sign-in to them.
- AC.L2-3.1.1[c] [f]Intune's device list identifies the devices allowed to connect, and Conditional Access limits sign-in to them.
- IA.L1-b.1.vi[c]Entra ID identifies the device by the certificate issued when it was registered before it grants access.
- IA.L2-3.5.2[c]Entra ID identifies the device by the certificate issued when it was registered before it grants access.
- AC.L2-3.1.18[b] [c]Laptops connect only once enrolled and compliant, and each sign-in is logged with its device.
Applies to
- Information
- FCI and CUI
- Systems
- Windows 11 laptops and desktops owned by the company, joined to Microsoft Entra ID and enrolled in Intune (Windows 10 is refused by the Minimum OS version below: see Before you choose this example)
- Every other platform that can sign in to the same accounts (macOS, iOS, Android) needs its own compliance policy, or it is refused once the policy below is on
- Tenant
- A Microsoft Entra ID tenant with Intune in Microsoft's global (commercial) service: the pages this recipe quotes are for it. Not checked for GCC or GCC High (see Before you choose this example). Whether the tenant may hold CUI is a separate question: Before CUI goes into a cloud service.
- Versions
- Microsoft Learn pages read on 2026-11-11: Conditional Access grant controls (updated 2026-06-02), the require-compliant-device policy (2026-03-24), report-only mode (2026-06-01), conditions (2026-06-02), Intune compliance overview (2026-07-02) and Windows compliance settings (2026-09-17); the grant controls, require-compliant-device, report-only, conditions (2026-09-28), compliance overview and Windows compliance settings pages again on 2026-11-12, with Microsoft's Windows 11 lifecycle pages and the Windows 11 and Windows 10 release information pages (both updated 2026-11-10).
Before you start
Licences
Microsoft Intune · Microsoft Intune Plan 1, with Plan 2, the Intune Suite and standalone advanced capabilities
Enrolment and device compliance policies for every user whose laptop signs in.
Microsoft lists Intune (with Entra ID P1) as included in Microsoft 365 Business Premium, E3, E5, F3, G3 and G5, among others; it can also be bought separately. Source, checked November 11, 2026. Plans change; confirm before buying.
Microsoft Entra ID · Microsoft Entra ID Free, P1 and P2, and Microsoft Entra ID Governance
Conditional Access, which refuses sign-ins from devices that are not compliant.
Microsoft's multifactor authentication licensing table marks Conditional Access for Entra ID P1 and P2 (not for the free tiers or Office 365), and risk-based Conditional Access for P2 only. Source, checked November 11, 2026. Plans change; confirm before buying.
Administrator roles
- Intune Administrator (or a custom Intune role that can edit compliance policies and tenant compliance settings): The compliance policies and the tenant-wide compliance settings.
- Conditional Access Administrator: Creating the Conditional Access policy; Microsoft's steps start by signing in as at least this role.
Devices
- Each company Windows laptop joined to Entra ID and enrolled in Intune. Microsoft: devices must be registered in Entra ID before they can be marked as compliant (quoted under the Grant setting below).
- A test laptop you can break on purpose (turn off its firewall, give it a test policy of its own) with a test user who signs in on it, and a personal laptop or browser profile that is not enrolled.
Already in place
- Two emergency access accounts that sign in with a passkey (FIDO2) or certificate-based authentication, tested, with their credentials kept where your break-glass procedure says.
- A Conditional Access policy that requires multifactor authentication for all users (IA.L2-3.5.3). This recipe adds a device check; it does not replace sign-in with a second factor.
- Your configuration baseline: the settings below and the numbers you choose (minimum Windows build, validity period, grace period) written down before you enforce them.
Configuration
Tenant-wide compliance settings
Two settings apply to every device in the tenant. Set them on purpose before the Conditional Access policy is turned on.
Mark devices with no compliance policy assigned as
Intune admin center > Endpoint security > Device compliance > Compliance policy settings
ValueNot compliant
WhyThe default is Compliant, so an enrolled laptop that no compliance policy reaches passes the Conditional Access check below without being checked at all. Warning: the setting is tenant-wide. If any Conditional Access policy that requires a compliant device is already On, changing it makes every enrolled device without a compliance policy noncompliant for that policy, and Microsoft's page does not say how soon; treat it as immediate. Check first: in Conditional Access, which policies are On with Require device to be marked as compliant; in Intune, which enrolled devices have no compliance policy assigned (Company Portal shows them "No compliance policies have been assigned"). Assign their policies (the Assignments step) before you change this, or make the change while every such policy is in Report-only (Rolling it out).
- Conflicts withA Conditional Access policy that requires a compliant device is already On. Every enrolled device with no compliance policy assigned becomes noncompliant for that policy; treat it as immediate. Resolved by Assignments.
“If you use Conditional Access with your device compliance policies, change this setting to Not compliant to ensure that only devices that are confirmed as compliant can access your resources.”
“If an end user isn't compliant because a policy isn't assigned to them, the Company Portal app shows No compliance policies have been assigned. … If your Conditional Access policies have Access controls set to Require device to be marked as compliant, Conditional Access uses that compliance status to determine whether to grant or block access to email and other organization resources. If you use device compliance status with Conditional Access policies, review how your tenant configures the Mark devices with no compliance policy assigned as option, which you manage under Compliance policy settings.”
Compliance status validity period (days)
Intune admin center > Endpoint security > Device compliance > Compliance policy settings
ValueA number of days you choose and write in your baseline (Microsoft's default is 30; 1 to 120 can be set). A shorter period refuses a laptop that has stopped checking in sooner.
WhyA laptop that stops reporting keeps its last status until this period ends; after that it is treated as noncompliant.
“If a device fails to report its compliance status for a policy before the validity period expires, the device is treated as noncompliant.”
A compliance policy for Windows (and one for each other platform)
Create the policy in the Intune admin center under Devices > Manage devices > Compliance > Create policy, with Platform set to Windows 10 and later. The settings are the minimum this recipe relies on; add the others your baseline names. Then give every other platform that signs in its own policy.
Require BitLocker
Windows compliance policy > Device health
ValueRequire
WhyTies sign-in to an encrypted system drive. The encryption recipe sets BitLocker up; this setting only checks it. Microsoft notes it is measured at boot, so a laptop encrypted today shows compliant after a restart.
“Require - The device can protect data that's stored on the drive from unauthorized access when the system is off, or hibernates. … If using a device compliance policy in Intune, be aware that the state of this setting is only measured at boot time.”
Require Secure Boot to be enabled on the device
Windows compliance policy > Device health
ValueRequire
WhyA laptop that boots tampered startup files is refused. Microsoft states that a device without TPM 2.0 shows as Not Compliant with this setting, so check the fleet in the report-only pilot.
“Require - The system is forced to boot to a factory trusted state. … For devices that don't support TPM 2.0 or later, the policy status in Intune shows as Not Compliant.”
Require code integrity
Windows compliance policy > Device health
ValueRequire
WhyReports an unsigned driver or system file loaded into the kernel as noncompliant.
“Require - Require code integrity, which detects if an unsigned driver or system file is being loaded into the kernel.”
Minimum OS version
Windows compliance policy > Device properties
ValueThe oldest Windows build and update you still accept, in major.minor.build.revision form, on a version Microsoft still services: on 2026-11-12, build 26200 (Windows 11 25H2) for Pro, Pro Education and Enterprise, or 26100 (24H2) only for Enterprise and Education. The revision is a real one from Microsoft's Windows 11 release information: for example 10.0.26200.9818 (the 2026-10-28 update) or 10.0.26200.9974 (the 2026-11-10 security update), whichever is the oldest you accept. The prefix: Microsoft's page says to include the version prefix, "like 11.0 for Windows 11", but the same page says to read the value from ver, which returns 10.0, and its own Windows 11 examples (Valid operating system builds) begin 10.0. This recipe uses 10.0, as ver shows it; the Minimum OS version test below (Should be refused) is what confirms the form on your tenant. Raise it as you approve updates.
WhyA laptop that falls behind on updates is refused until it is updated. The encryption recipe's constraint applies here: no serviced Windows 11 build has modules listed on Microsoft's FIPS 140 page, so this minimum will be a build with no listed certificate. Do not lower it to 22H2 (10.0.22621), the newest version with listed certificates, to match one: Microsoft no longer services it. Record the gap instead (the encryption recipe, Case 1).
“When a device has an earlier version than the OS version you enter, it's reported as noncompliant. A link with information on how to upgrade is shown. The end user can choose to upgrade their device. After they upgrade, they can access company resources.”
“Be sure to include the appropriate version prefix before the build numbers, like 11.0 for Windows 11. Minimum OS version: Enter the minimum allowed version in the major.minor.build.revision number format. To get the correct value, open a command prompt, and type ver. The ver command returns the version in the following format: Microsoft Windows [Version 10.0.17134.1] … Example: Description Minimum OS version Maximum OS version Windows 11 24H2 (Oct–Dec 2024) 10.0.26100.1742 10.0.26100.2605”
“Version 25H2 (OS build 26200) Servicing option Update type Availability date Build KB article General Availability Channel 2026-11 B 2026-11-10 26200.9974 KB5132061 General Availability Channel 2026-10 D 2026-10-28 26200.9818 KB5127936”
Firewall
Windows compliance policy > System Security > Device security
ValueRequire
WhyA laptop with Windows Firewall off is refused. Microsoft notes that a Group Policy turning the firewall off makes the device Not compliant even if Intune turns it on, so remove conflicting Group Policy first.
“Require - Turn on the Windows Firewall, and prevent users from turning it off. … If a configuration is applied (for example, via a group policy) to a device that configures Windows Firewall to allow all inbound traffic, or turns off the firewall, setting Firewall to Require will return Not compliant, even if Intune device configuration policy turns Firewall on. This is because the group policy object overrides the Intune policy. To fix this issue, we recommend that you remove any conflicting group policy settings, or that you migrate your Firewall-related group policy settings to Intune device configuration policy.”
Microsoft Defender Antimalware
Windows compliance policy > System Security > Defender
ValueRequire
WhyA laptop whose antimalware service is off is refused.
“Require - Turn on the Microsoft Defender anti-malware service, and prevent users from turning it off.”
Microsoft Defender Antimalware security intelligence up-to-date
Windows compliance policy > System Security > Defender
ValueRequire
WhyA laptop with out-of-date malware definitions is refused until they update.
“Require - Force the Microsoft Defender security intelligence be up-to-date.”
Schedule (days after noncompliance)
Compliance policy > Actions for noncompliance > Mark device noncompliant
Value0 (immediately), unless you decide on a grace period; write the number of days you choose in your baseline.
WhyA grace period lets a user fix a problem before losing access; it is also a period in which a noncompliant laptop still gets in. Choose it on purpose.
“Each compliance policy includes Mark device noncompliant as a built-in default action, scheduled to trigger immediately at zero days. … When you change the default schedule, you provide a grace period in which a user can remediate issues or become compliant without being marked as noncompliant.”
Assignments
Compliance policy > Assignments
ValueThe Windows policy to a group you make of the people who sign in to company data (or of the company's Windows devices), rather than to the built-in all-users choice, so a test user can be left out for the refused test below; a separate policy for each other platform those people sign in from. Write down which way you assign it (users or devices): the refused test depends on it.
WhyWith the tenant setting above at Not compliant, a device that no policy reaches is refused. Assigning a policy per platform is what keeps the right devices working; the no-policy refused test shows what happens to a device the assignment misses.
“Not compliant: This security feature is on. Devices without a device compliance policy are considered noncompliant.”
The Conditional Access policy that requires a compliant device
Microsoft Entra admin center > Entra ID > Conditional Access > Policies > New policy. Microsoft warns that without an Intune compliance policy this policy will not work as intended: create the compliance policies first.
Users
Conditional Access policy > Assignments > Users
ValueInclude: All users. Exclude: your emergency access accounts only (and, if you synchronise from Active Directory, the Directory Synchronization Accounts role).
WhyAccounts are checked unless they are excluded, and the exclusions are kept to the emergency accounts, so a mistake in this policy cannot lock every administrator out. The bypass test that lists the exclusions checks it.
“Verify that emergency access accounts are excluded from any Conditional Access policy that blocks or restricts sign-in.”
“Under Include, select All users Under Exclude: Select Users and groups Choose your organization's emergency access or break-glass accounts. If you use hybrid identity solutions like Microsoft Entra Connect or Microsoft Entra Connect Cloud Sync, select Directory roles, then select Directory Synchronization Accounts”
Resources (formerly cloud apps)
Conditional Access policy > Target resources
ValueInclude: All resources
WhyA policy limited to a few apps leaves the others open to unmanaged devices.
“Under Target resources > Resources (formerly cloud apps) > Include, select All resources (formerly 'All cloud apps').”
Grant
Conditional Access policy > Access controls > Grant
ValueRequire device to be marked as compliant
WhyAccess is granted only to a device Intune reports as compliant.
“Under Access controls > Grant. Select Require device to be marked as compliant.”
“Devices must be registered in Microsoft Entra ID before they can be marked as compliant. … The Require device to be marked as compliant control: Only supports Windows 10+, iOS, Android, macOS, and Linux Ubuntu devices registered with Microsoft Entra ID and enrolled with Intune. Microsoft Edge in InPrivate mode on Windows is considered as a noncompliant device.”
Device platforms
Conditional Access policy > Conditions > Device platforms
ValueNot configured: the policy applies to every platform. Do not narrow it to Windows.
WhyThe platform is read from the user agent, which the user controls. A policy that covers only Windows lets a browser that claims to be Linux skip it.
“Because user agent strings can be modified, this information isn't verified. Use device platform with Microsoft Intune device compliance policies or as part of a block statement. By default, it applies to all device platforms.”
Enable policy
Conditional Access policy > Enable policy
ValueReport-only while you pilot; On only after the report shows no device you mean to keep would be refused.
WhyReport-only evaluates sign-ins and logs what the policy would have done without refusing anyone.
ThenOn
“Confirm your settings and set Enable policy to Report-only. … After confirming your settings using policy impact or report-only mode, move the Enable policy toggle from Report-only to On.”
Rolling it out
Pilot first
- Create the compliance policies and assign them to a pilot group first: two or three users and their laptops, including one administrator who is not an emergency account. Fix what the compliance report shows, then widen the assignment.
- Create the Conditional Access policy in Report-only for all users. Read the Report-only tab of the sign-in log entries (Microsoft: results are logged in the Conditional Access and Report-only tabs of the sign-in log details) for as long as it takes to see every device in normal use, and fix each device it would refuse.
- Microsoft warns that a report-only policy requiring a compliant device can prompt users on macOS, iOS and Android to pick a device certificate, and that the prompts can repeat until the device is compliant. Microsoft's way to prevent them is to exclude those platforms from the report-only policy. If you do, those devices are missing from the report: give them their compliance policies first, and remove the exclusion before you switch the policy On. Otherwise tell those users before the pilot starts.
“Policies in report-only mode that require a compliant device can prompt users on macOS, iOS, and Android devices to select a device certificate during policy evaluation, even though device compliance isn't enforced. These prompts can repeat until the device is compliant. To prevent end users from receiving prompts during sign-in, exclude the Mac, iOS, and Android device platforms from report-only policies that perform device compliance checks.”
- Check the browsers people sign in with, because a browser that cannot pass the device's identity is refused even on a compliant laptop. Microsoft: on Windows, Edge needs the user signed in to the browser (otherwise it behaves like Chrome without the Microsoft Single Sign On extension), Chrome needs the Microsoft Single Sign On extension or CloudAPAuthEnabled, and Firefox needs Allow Windows single sign-on for Microsoft, work, and school accounts; the check fails in a private window or with cookies off. Set Edge sign-in, the Chrome extension or policy, and the Firefox setting on the pilot laptops, and read the Report-only results for each browser in use. This includes sign-ins that another product opens in the default browser, such as the VPN recipe's FortiClient sign-in.
“The device check fails if the browser is running in private mode or if cookies are disabled. Note Microsoft Edge 85+ requires the user to be signed in to the browser to properly pass device identity. Otherwise, it behaves like Chrome without the Microsoft Single Sign On extension. … Firefox 91+ is supported for device-based Conditional Access, but "Allow Windows single sign-on for Microsoft, work, and school accounts" needs to be enabled. … For Chrome support in Windows 10 Creators Update (version 1703) or later, install the Microsoft Single Sign On extension or enable Chrome's CloudAPAuthEnabled.”
- Change Mark devices with no compliance policy assigned as to Not compliant while the Conditional Access policy is still in Report-only (and no other compliance-based policy is On), then read the report again: devices no policy reaches show up now, not after enforcement.
- When the report shows no device you mean to keep would be refused, set the policy's Enable policy to On (the lockout steps below come first). Report-only refuses nobody, so the refused and bypass tests below mean nothing until this step: run all the tests now, and again after any change to the policy.
“During sign-in, the system evaluates policies in report-only mode but doesn't enforce them. … After confirming your settings using policy impact or report-only mode, move the Enable policy toggle from Report-only to On.”
Not locking yourself out
- Before turning the policy On, sign in once with each emergency access account and confirm the policy shows it as excluded.
- Keep one administrator's compliant laptop signed in to the Entra admin center while you switch the policy On, so you can switch it back.
- Restart a newly encrypted laptop before expecting it to show compliant: Require BitLocker is measured at boot.
- Microsoft states that requiring a compliant device does not block Intune enrolment, so a new laptop can still be enrolled after the policy is On.
“You can enroll your new devices to Intune even if you select Require device to be marked as compliant for All users and All resources (formerly 'All cloud apps') using the previous steps. The Require device to be marked as compliant control doesn't block Intune enrollment.”
Rolling back
- Set the Conditional Access policy back to Report-only (or Off). Sign-ins are no longer refused for compliance, and the report keeps showing what the policy would do.
- Do not roll back by setting Mark devices with no compliance policy assigned as to Compliant: assign the missing policy instead.
- Record each change of state in your change log with the date and the reason.
Tests
Run these on your own systems and keep the dated results. Each says what you should see.
Should pass
DoOn a pilot laptop that is enrolled, has the Windows policy and shows Compliant in Company Portal, sign in to Outlook on the web in Microsoft Edge with the work account.
ExpectAccess is granted, and the sign-in log entry's Conditional Access tab shows this policy applied with its grant control satisfied.
Should be refused
DoWith the policy On, sign in to the same account from a personal laptop that is not enrolled, in any browser.
ExpectRefused by this policy (the sign-in log entry's Conditional Access tab, not Report-only, shows it as the reason).
ChangesLeaves the test user, or the test laptop, out of the Windows compliance policy's assignment, so the laptop has no compliance policy and is Not compliant until it is put back.
BeforeUse the test laptop and test user (Before you start), never a person's working laptop. Check how the Windows policy is assigned (Assignments: you wrote down users or devices). If it is assigned to a group of users, the test user must be in no group the Windows policy is assigned to and must be the one who enrolled and signs in on the test laptop; if it is assigned to a group of devices, the test laptop must be in no group it is assigned to. Note the groups the test user and the test laptop are in now.
DoWith the test user (policy assigned to users) or the test laptop (policy assigned to devices) out of every group the Windows compliance policy is assigned to, so that no Windows compliance policy is assigned to the laptop, sync the laptop and open Company Portal before you sign in. Then sign in to Outlook on the web as the test user.
AfterwardsPut the test user or the test laptop back in the groups you noted, sync the laptop, and check that Company Portal shows the Windows policy and Compliant, and that the next sign-in is granted.
ExpectBefore the sign-in, Company Portal shows "No compliance policies have been assigned" (Microsoft's wording for a user no policy reaches); if it lists the Windows policy, the policy still reaches the laptop and the test has not started. The sign-in is refused and the device is Not compliant in Intune.
“If an end user isn't compliant because a policy isn't assigned to them, the Company Portal app shows No compliance policies have been assigned.”
ChangesTurns off the test laptop's Windows Firewall, so the laptop is Not compliant until it is turned back on.
BeforeUse the test laptop you can break on purpose (Before you start), on its normal Windows policy, showing Compliant.
DoOn the test laptop, turn Windows Firewall off, sync, and sign in.
AfterwardsThe second Recovery test below: turn the firewall back on and sync, and the laptop shows Compliant again and the next sign-in is granted.
ExpectThe laptop shows Not compliant with Firewall named as the failing setting, and the sign-in is refused.
ChangesAssigns the test laptop a second Windows compliance policy whose Minimum OS version is above the laptop's build, so the laptop is Not compliant while it is assigned.
BeforeDo not edit the shared Windows policy: raising its Minimum OS version would make every older laptop it is assigned to noncompliant at once. Instead create a separate test policy (Windows 10 and later) with only Minimum OS version set, and a device group whose one member is the test laptop. Run ver on the test laptop and note its version.
DoIn the test policy, set Minimum OS version one revision above the test laptop's version in the 10.0 form (for example 10.0.26200.9975 for a laptop on 10.0.26200.9974), assign the test policy to that device group, sync, and sign in. Then set the test policy's Minimum OS version to exactly the laptop's version, sync, and sign in again.
AfterwardsRemove the test policy's assignment (or delete the test policy) and the test device group, sync the test laptop, and check that Company Portal shows it Compliant on its normal Windows policy and the next sign-in is granted.
ExpectAbove its version: the laptop shows Not compliant with Minimum OS version named, and the sign-in is refused. At its version: Compliant again and the sign-in is granted. This confirms that your tenant reads the value in the 10.0 form (Microsoft's page gives both 10.0 and 11.0; see the setting). If the laptop stays compliant in the first step, check the form before you rely on the shared policy's minimum.
A way around that should fail
DoOn a compliant laptop, open Microsoft Edge InPrivate and sign in.
ExpectRefused: Microsoft states that Edge in InPrivate mode on Windows is considered a noncompliant device.
“Microsoft Edge in InPrivate mode on Windows is considered as a noncompliant device.”
DoOn an unmanaged computer, change the browser's user agent to Linux or another platform and sign in.
ExpectStill refused: the policy covers every platform, and the computer cannot show a compliant device record.
DoList the users, groups and roles excluded from the policy.
ExpectThe list holds the emergency access accounts (and the Directory Synchronization Accounts role if you use it), and nothing else. Any other exclusion is a way in: remove it or record why it exists.
When the service is unreachable
DoLeave the test laptop switched off for longer than the compliance status validity period you chose (at least a day: the period is 1 to 120 days). Before switching it back on, find it in the Intune admin center under Devices > Monitor > Setting compliance, where this check is named Is active.
ExpectIntune shows the laptop failing Is active, so it is treated as noncompliant and a sign-in from it is refused until it reports to Intune again.
DoOn a laptop that cannot reach Microsoft's sign-in service at all, try to open company cloud apps.
ExpectNothing signs in, because the check happens at sign-in. Files already synced to the laptop stay readable on it (see What this does not cover).
Recovery
ChangesSwitches the compliant-device policy to Report-only, so no sign-in is refused for compliance until it is switched back to On.
BeforeDo it at a time agreed for the test, with a second administrator watching, and note the policy's state (On) and the time.
DoSign in with an emergency access account from a device that is not enrolled and switch the policy to Report-only.
AfterwardsStill signed in with the emergency account, switch the policy back to On, then run the first Should be refused test again (the unenrolled personal laptop) and check that the sign-in log entry's Conditional Access tab, not Report-only, names the policy. Record both changes of state with their times in the change log.
ExpectThe emergency account signs in with its passkey or certificate because it is excluded, and the change takes effect for later sign-ins. Afterwards the policy is On and the unenrolled laptop is refused again.
DoOn the test laptop, turn the firewall back on and sync the device (Company Portal, or Settings > Accounts > Access work or school > Info > Sync).
ExpectThe laptop shows Compliant again and the next sign-in is granted. Microsoft's Firewall note says to sync manually to re-evaluate the compliance status.
“If the device immediately syncs after a reboot, or immediately syncs waking from sleep, then this setting may report as an Error. This scenario might not affect the overall device compliance status. To re-evaluate the compliance status, manually sync the device.”
Evidence package: what to keep
Each record to keep once the recipe is in place: where it comes from in this recipe, what an assessor should see in it, the practices it supports, when to take it again and what it does not show. Written from the vendors' documentation: Expert CMMC has not run this configuration, and nothing here is a capture of a real system. A layout marked Illustration uses placeholder values.
Each compliance policy (Windows and every other platform) and the tenant-wide compliance policy settings
ev-nac-compliance-configEvidence register: Network access control and device compliance configuration
- Taken from
Intune admin center: each policy's Properties page (screenshot or export)
- Mark devices with no compliance policy assigned as: Intune admin center > Endpoint security > Device compliance > Compliance policy settings
- Compliance status validity period (days): Intune admin center > Endpoint security > Device compliance > Compliance policy settings
- Require BitLocker: Windows compliance policy > Device health
- Require Secure Boot to be enabled on the device: Windows compliance policy > Device health
- Require code integrity: Windows compliance policy > Device health
- Minimum OS version: Windows compliance policy > Device properties
- Firewall: Windows compliance policy > System Security > Device security
- Microsoft Defender Antimalware: Windows compliance policy > System Security > Defender
- Microsoft Defender Antimalware security intelligence up-to-date: Windows compliance policy > System Security > Defender
- Schedule (days after noncompliance): Compliance policy > Actions for noncompliance > Mark device noncompliant
- Assignments: Compliance policy > Assignments
- It must show
- Platform; Every setting and its value; Assigned groups; Actions for noncompliance and their schedule; Mark devices with no compliance policy assigned as: Not compliant; Compliance status validity period.
- An assessor should see
- Compliance policy settings: Mark devices with no compliance policy assigned as Not compliant, and the Compliance status validity period (days) written in your baseline.
- Device health: Require BitLocker, Require Secure Boot to be enabled on the device and Require code integrity, each set to Require.
- Device properties: Minimum OS version, the oldest build and revision your baseline accepts, in the 10.0 form.
- System Security: Firewall, Microsoft Defender Antimalware and Microsoft Defender Antimalware security intelligence up-to-date, each set to Require.
- Actions for noncompliance: Mark device noncompliant, with the schedule your baseline records (0 unless you chose a grace period).
- Assignments: the group you made (of users or of devices, as you recorded), and a policy for each other platform people sign in from.
- Supports
- AC.L1-b.1.i [c]; AC.L2-3.1.1 [c]; AC.L2-3.1.18 [b]
- Taken again
- After each change to a compliance policy or to the tenant-wide compliance settings, with the change log entry, and at each configuration review on the schedule you set.
- Does not show
- That any device is refused: the compliance policies define what compliant means, and the Conditional Access policy is what refuses (the access rule, and the refused tests' sign-in log entries). Nor which devices are compliant today (the compliance report), nor that the settings you chose are strong enough: a compliant device is one that passed these settings and no more.
The Conditional Access policy
ev-device-access-ruleEvidence register: Device-trust access rule
- Taken from
Microsoft Entra admin center > Conditional Access > the policy (screenshot of each tab, or its JSON from the policy list)
- Users: Conditional Access policy > Assignments > Users
- Resources (formerly cloud apps): Conditional Access policy > Target resources
- Grant: Conditional Access policy > Access controls > Grant
- Device platforms: Conditional Access policy > Conditions > Device platforms
- Enable policy: Conditional Access policy > Enable policy
- Test, a way around that should fail: List the users, groups and roles excluded from the policy.
- It must show
- State: On; Users included (All users) and excluded (emergency accounts only); Target resources: All resources; Grant: Require device to be marked as compliant; No device platform condition.
- An assessor should see
- Enable policy: On, not Report-only, and the date it was switched On in your change log.
- Users: Include All users; Exclude your emergency access accounts only (and the Directory Synchronization Accounts role if you synchronise from Active Directory).
- Target resources: Include All resources.
- Grant: Require device to be marked as compliant.
- Conditions > Device platforms: Not configured.
- The exclusions test's result: the list of excluded users, groups and roles holds the emergency access accounts (and the synchronization role) and nothing else, or each other exclusion with the reason you recorded.
- Supports
- AC.L1-b.1.i [f]; AC.L2-3.1.1 [f]; AC.L2-3.1.18 [b]
- Taken again
- After each change to the policy's state, assignments or grant, with the change log entry, and at each configuration review on the schedule you set.
- Does not show
- That the policy refuses anything: the settings show what it is set to do, and the refused tests' sign-in log entries show it doing it. Nor anything that does not sign in through Entra ID (Windows sign-in on the laptop itself, local file shares, a VPN with another identity source), nor files already synced to a laptop.
The device compliance report
ev-device-inventoryEvidence register: Device inventory
- Taken from
Intune admin center: the device compliance report, exported
- Mark devices with no compliance policy assigned as: Intune admin center > Endpoint security > Device compliance > Compliance policy settings
- Compliance status validity period (days): Intune admin center > Endpoint security > Device compliance > Compliance policy settings
- Test, when the service is unreachable: Leave the test laptop switched off for longer than the compliance status validity period…
- It must show
- Device name; Primary user; Operating system version; Compliance state; Last check-in.
- An assessor should see
- Each enrolled device with its name, primary user, operating system version, compliance state and last check-in.
- Devices that no compliance policy reaches listed as Not compliant (the tenant-wide setting), rather than missing.
- A laptop that has not checked in within your validity period shown failing Is active (Devices > Monitor > Setting compliance), as in the test When the service is unreachable.
- Every device you mean to keep shown Compliant, and a follow-up recorded for each one that is not.
- Supports
- AC.L1-b.1.i [c]; AC.L2-3.1.1 [c]
- Taken again
- Exported again, and dated, for each review of noncompliant devices on the schedule you set, and when a device is added or retired.
- Does not show
- Devices that were never enrolled: the report lists only what Intune manages, so compare it with your purchase records or the network's client list. Nor that a Not compliant device was refused (the sign-in log), nor that anyone followed it up (your review record).
The sign-in log entries of the refused and bypass tests above
ev-identity-signin-logsEvidence register: Sign-in and authentication logs
- Taken from
Microsoft Entra admin center > Sign-in logs (filter by the test user and date)
- Test, should pass: On a pilot laptop that is enrolled, has the Windows policy and shows Compliant in Company…
- Test, should be refused: With the policy On, sign in to the same account from a personal laptop that is not…
- Test, should be refused: With the test user (policy assigned to users) or the test laptop (policy assigned to…
- Test, should be refused: On the test laptop, turn Windows Firewall off, sync, and sign in.
- Test, should be refused: In the test policy, set Minimum OS version one revision above the test laptop's version…
- Test, a way around that should fail: On a compliant laptop, open Microsoft Edge InPrivate and sign in.
- Test, a way around that should fail: On an unmanaged computer, change the browser's user agent to Linux or another platform…
- It must show
- User; Date and time; Device (or none); Conditional Access result naming this policy; Failure reason.
- An assessor should see
- The passing test's entry: access granted, with this policy applied and its grant control satisfied on the Conditional Access tab.
- Each refused test's entry (an unenrolled laptop, no compliance policy assigned, the firewall off, a build below Minimum OS version): the sign-in refused, the Conditional Access tab (not Report-only) naming this policy, and the failure reason.
- The ways around (Edge InPrivate, a changed user agent): refused in the same way.
- In each entry: the user, the date and time, and the device, or none.
- Supports
- IA.L1-b.1.vi [c]; IA.L2-3.5.2 [c]; AC.L1-b.1.i [f]; AC.L2-3.1.1 [f]; AC.L2-3.1.18 [c]
- Taken again
- Exported each time the tests are run: once the policy is switched On, after any change to it, and on the test schedule you set.
- Does not show
- That the device was checked on sign-ins nobody tested: the entries are samples. Nor that anyone reviews the log (the logging is here; monitoring it is your review), and an entry from the Report-only tab shows what the policy would have done, not a refusal.
The dated record of each test in Tests
ev-control-test-recordEvidence register: Control test record
- Taken from
Your test notes, one per test, each with the sign-in log entry or the Intune screen it refers to
- Test, should be refused: With the policy On, sign in to the same account from a personal laptop that is not…
- Test, should be refused: With the test user (policy assigned to users) or the test laptop (policy assigned to…
- Test, should be refused: On the test laptop, turn Windows Firewall off, sync, and sign in.
- Test, should be refused: In the test policy, set Minimum OS version one revision above the test laptop's version…
- Test, a way around that should fail: On a compliant laptop, open Microsoft Edge InPrivate and sign in.
- Test, a way around that should fail: On an unmanaged computer, change the browser's user agent to Linux or another platform…
- Test, a way around that should fail: List the users, groups and roles excluded from the policy.
- Test, recovery: Sign in with an emergency access account from a device that is not enrolled and switch…
- Test, recovery: On the test laptop, turn the firewall back on and sync the device (Company Portal, or…
- It must show
- Date and who ran it; The test, as this recipe names it, and the device and account used; The result seen, and whether it is what the recipe expects; The sign-in log entry or Intune screen that shows it; What was put back afterwards.
- An assessor should see
- For each refused test and each way around: refused by this policy, with the laptop shown Not compliant and the failing setting named where the test says so.
- The Minimum OS version test's two results: refused one revision above the laptop's version, granted at its version (the check that your tenant reads the 10.0 form).
- The no-policy test: Company Portal showing "No compliance policies have been assigned" before the sign-in, then the sign-in refused.
- The recovery tests: the emergency access account signed in, and afterwards the policy On and the unenrolled laptop refused again; the firewall back on and the laptop Compliant after a sync.
- Supports
- AC.L1-b.1.i [f]; AC.L2-3.1.1 [f]; IA.L1-b.1.vi [c]; IA.L2-3.5.2 [c]
- Taken again
- Once the policy is switched On, after each change to it or to a compliance policy, and on the test schedule you set.
- Does not show
- Devices, platforms and browsers that were not tested, or the policy after a later change. A record from the pilot covers the pilot laptops only.
IllustrationA layout for this record with placeholder values in angle brackets. Not a capture of a real system. Date Test Device and account Result seen As the recipe expects Shown by Put back afterwards <date> Should be refused: a laptop that is not enrolled <personal laptop>, <test user> Sign-in refused; the Conditional Access tab names <policy name> Yes Sign-in log entry <request ID> Nothing to put back <date> Should be refused: firewall off <test laptop>, <test user> Not compliant, Firewall named; sign-in refused Yes Intune device compliance screen, sign-in log entry <request ID> Firewall on, synced, Compliant again
What this does not cover
Not covered by this recipe
- Personal phones and tablets: this policy refuses them. Letting them in with app protection policies is a separate decision this recipe does not make.
- Data already on the laptop: compliance is checked at sign-in, so files synced earlier stay readable offline. Encrypting the drive is the encryption recipe.
- Anything that does not sign in through Entra ID: Windows sign-in on the laptop itself, local file shares, and VPNs that use another identity source.
- A compliant device is one that passed the settings you chose. It is as strong as the policy, and no stronger.
- Whether your tenant may hold CUI: Before CUI goes into a cloud service.
Still yours (or your provider's)
- Choosing the settings, the minimum Windows build, the validity period and any grace period, and recording them in your configuration baseline.
- Reviewing the noncompliant devices and following each one up.
- Keeping the emergency access accounts' credentials safe and testing them.
- Describing this in your system security plan, including the devices you allow and how you refuse the rest.
Cost and effort
- Licences
- Per user: Intune for device compliance and Entra ID's Conditional Access. Microsoft sells them separately and inside several Microsoft 365 bundles; the catalog facts under Prerequisites say which.
- Hardware
- None beyond the laptops. Require Secure Boot reports a device without TPM 2.0 as Not Compliant, so older laptops may need replacing.
- Setup
- Expert CMMC's estimate: about a day for an administrator who has used Intune before, plus a report-only pilot long enough to see every laptop in normal use.
- Upkeep
- Raise the minimum Windows build as you approve updates, review noncompliant devices, and repeat the refused and bypass tests after any change to Conditional Access.
No prices: they change and depend on what you already hold.
Vendor statements this rests on
The product catalog records this recipe cites, with the date each was checked. When one is reworded, the recipe is marked for review; when one is only re-checked and still says the same, the new date shows here.
- "Mark devices with no compliance policy assigned as" defaults to Compliant, so a device with no compliance policy passes; Microsoft says to set it to Not compliant when Conditional Access uses compliance. Source, checked November 11, 2026.
- A device that has not reported its compliance within the compliance status validity period is noncompliant; the default is 30 days, settable from 1 to 120. Source, checked November 11, 2026.
- Each compliance policy marks a device noncompliant immediately by default; changing that schedule gives a grace period. Source, checked November 11, 2026.
- Microsoft: exclude emergency access accounts from Conditional Access policies that block or restrict sign-in; their phishing-resistant method protects them. Source, checked November 11, 2026.
- Microsoft lists Intune (with Entra ID P1) as included in Microsoft 365 Business Premium, and in Microsoft 365 E3, E5, F3, G3 and G5, among others; it can also be bought separately. Source, checked November 11, 2026.
- Microsoft's multifactor authentication licensing table marks Conditional Access for Entra ID P1 and P2 (not for the free tiers or Office 365), and risk-based Conditional Access for P2 only. Source, checked November 11, 2026.
Expert CMMC's editorial guidance, not official text and not an endorsement of any product. Vendors change their products and pages; confirm each setting on the vendor's current page.