<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Exactey</title>
    <description>The latest articles on DEV Community by Exactey (@exactey).</description>
    <link>https://dev.to/exactey</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977444%2Fce3fe37c-1810-4aea-aa26-bbb4522a9289.jpg</url>
      <title>DEV Community: Exactey</title>
      <link>https://dev.to/exactey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/exactey"/>
    <language>en</language>
    <item>
      <title>The 5 Conditional Access Mistakes That Lock Users Out (And How to Fix Them)</title>
      <dc:creator>Exactey</dc:creator>
      <pubDate>Wed, 10 Jun 2026 10:35:33 +0000</pubDate>
      <link>https://dev.to/exactey/the-5-conditional-access-mistakes-that-lock-users-out-and-how-to-fix-them-45a8</link>
      <guid>https://dev.to/exactey/the-5-conditional-access-mistakes-that-lock-users-out-and-how-to-fix-them-45a8</guid>
      <description>&lt;p&gt;One wrong Conditional Access policy and your entire organization is locked out. No exceptions. Not some users — everyone, including you.&lt;br&gt;
These are the five mistakes I see most often. Each one has locked out real users in real environments.&lt;/p&gt;

&lt;p&gt;Mistake 1: No break-glass account&lt;br&gt;
This is the one that causes the most damage. A break-glass account is a cloud-only Global Administrator account that is excluded from every single Conditional Access policy. Its only purpose: if a misconfigured policy locks out all admins, you can still get in and fix it.&lt;br&gt;
Most environments don't have one until after the first lockout.&lt;br&gt;
How to set it up correctly:&lt;br&gt;
Create a cloud-only account — not synced from on-prem AD. Something like &lt;a href="mailto:emergency-admin@yourtenant.onmicrosoft.com"&gt;emergency-admin@yourtenant.onmicrosoft.com&lt;/a&gt;. Assign Global Administrator permanently, not via PIM. Use a long random password stored offline. Register MFA using a FIDO2 hardware key, not an authenticator app tied to a personal phone. Exclude this account from every Conditional Access policy you create. Monitor sign-ins — any login from this account should trigger an alert immediately.&lt;br&gt;
Never skip this step. Microsoft explicitly recommends break-glass exclusions in every CA policy tutorial in their documentation for good reason.&lt;/p&gt;

&lt;p&gt;Mistake 2: Enabling "Require compliant device" before devices are enrolled&lt;br&gt;
This is the fastest way to lock out your entire user base in one click.&lt;br&gt;
What happens: you enable the policy targeting All Users, and every user whose device is not yet enrolled in Intune and marked compliant gets blocked from everything — including the Intune portal they need to enroll.&lt;br&gt;
The correct order:&lt;/p&gt;

&lt;p&gt;Create an Intune compliance policy first&lt;br&gt;
Confirm at least one device is enrolled and marked compliant&lt;br&gt;
Start with a pilot group of 10-20 users, not All Users&lt;br&gt;
Use the flexible version first: require compliant device OR MFA — this gives unenrolled users a fallback instead of a hard block&lt;br&gt;
Expand to All Users only after full enrollment is complete&lt;/p&gt;

&lt;p&gt;If you are not ready to enforce device compliance for everyone, use the flexible policy. It is always better than a hard block on day one.&lt;/p&gt;

&lt;p&gt;Mistake 3: Not using Report-only mode first&lt;br&gt;
Every new Conditional Access policy should start in Report-only mode. In this mode the policy is evaluated but not enforced — users are not blocked or prompted. You see exactly who would be affected before anything happens.&lt;br&gt;
Most lockouts happen because someone created a policy, set it to On immediately, and did not check the impact first.&lt;br&gt;
The correct flow:&lt;/p&gt;

&lt;p&gt;Create policy → set Enable policy to Report-only → Save&lt;br&gt;
Wait 24-48 hours&lt;br&gt;
Review sign-in logs: Entra Admin Center → Monitoring → Sign-ins → Conditional Access tab&lt;br&gt;
Use the What If tool to simulate specific users and scenarios&lt;br&gt;
Only switch to On after confirming the impact is what you expected&lt;/p&gt;

&lt;p&gt;This costs you 24 hours. Skipping it can cost you hours of emergency recovery.&lt;/p&gt;

&lt;p&gt;Mistake 4: Blocking legacy authentication without checking who uses it&lt;br&gt;
Blocking legacy authentication is one of the highest-value CA policies you can enable — over 99% of password spray attacks use legacy auth protocols. But if you enable it without checking first, you will block legitimate users.&lt;br&gt;
Common legacy auth users that get missed:&lt;/p&gt;

&lt;p&gt;Older printers and scanners sending email via SMTP&lt;br&gt;
Shared mailboxes accessed via older Outlook versions&lt;br&gt;
On-premises applications authenticating via basic auth&lt;br&gt;
Some conferencing equipment&lt;/p&gt;

&lt;p&gt;How to check before enabling:&lt;br&gt;
Go to Entra Admin Center → Monitoring → Sign-ins → filter by Client app → select Exchange ActiveSync and Other clients. Any sign-ins showing here are using legacy authentication. Document them before you block anything.&lt;br&gt;
Then enable the policy in Report-only mode, review the impact, handle the exceptions, and only then turn it on.&lt;/p&gt;

&lt;p&gt;Mistake 5: Forgetting that all policies apply simultaneously&lt;br&gt;
This is a logic mistake that creates unexpected blocks.&lt;br&gt;
Conditional Access policies are not evaluated one at a time — all applicable policies must be satisfied simultaneously. If Policy A requires MFA and Policy B requires a compliant device, the user must complete both MFA AND use a compliant device. There is no "first match wins" logic.&lt;br&gt;
This creates problems when:&lt;/p&gt;

&lt;p&gt;You have a policy requiring MFA for all users&lt;br&gt;
And a separate policy requiring a compliant device for all users&lt;br&gt;
And a user is on an unenrolled device&lt;/p&gt;

&lt;p&gt;They cannot satisfy the compliant device requirement, so they are blocked — even though your intention was to allow MFA as a fallback.&lt;br&gt;
Fix: think through policy combinations carefully. Use the What If tool to simulate specific users before enabling. And when in doubt, use OR logic in grant controls instead of AND.&lt;/p&gt;

&lt;p&gt;The safe rollout order&lt;br&gt;
If you are starting from scratch, enable policies in this order:&lt;/p&gt;

&lt;p&gt;Create break-glass accounts first — non-negotiable&lt;br&gt;
Disable Security Defaults&lt;br&gt;
Create all policies in Report-only mode&lt;br&gt;
Review sign-in logs for 24-48 hours&lt;br&gt;
Enable Block legacy authentication — low user impact, high security gain&lt;br&gt;
Enable MFA for all users — communicate to users first&lt;br&gt;
Enable device compliance — start with pilot group only&lt;/p&gt;

&lt;p&gt;Never enable everything at once. One policy at a time, Report-only first.&lt;/p&gt;

&lt;p&gt;I put together a complete playbook covering all 10 essential Conditional Access policies with exact configuration steps, the full safe rollout order, 5 lockout scenarios with fixes, and a 28-item implementation checklist — all sourced from official Microsoft documentation.&lt;br&gt;
Get it here: &lt;a href="https://exactey.gumroad.com/l/ConditionalAccess-IntuneCompliance" rel="noopener noreferrer"&gt;https://exactey.gumroad.com/l/ConditionalAccess-IntuneCompliance&lt;/a&gt;&lt;br&gt;
Questions? Drop them in the comments.&lt;br&gt;
Sources: learn.microsoft.com/en-us/entra/identity/conditional-access&lt;/p&gt;

</description>
      <category>intune</category>
      <category>microsoft</category>
      <category>azure</category>
      <category>sysadmin</category>
    </item>
    <item>
      <title>Windows Autopilot: The 7 Most Common Deployment Failures (And Exactly How to Fix Them)</title>
      <dc:creator>Exactey</dc:creator>
      <pubDate>Wed, 10 Jun 2026 10:28:03 +0000</pubDate>
      <link>https://dev.to/exactey/windows-autopilot-the-7-most-common-deployment-failures-and-exactly-how-to-fix-them-5f2e</link>
      <guid>https://dev.to/exactey/windows-autopilot-the-7-most-common-deployment-failures-and-exactly-how-to-fix-them-5f2e</guid>
      <description>&lt;p&gt;If you've deployed Windows Autopilot more than twice, you've hit at least one of these. The same seven failures keep showing up across every environment. Not edge cases — the same errors, over and over.&lt;br&gt;
This post covers each one with the exact cause and fix.&lt;/p&gt;

&lt;p&gt;Error 1: 0x800705B4 — "Preparing device for mobile management failed"&lt;br&gt;
Nine times out of ten: TPM.&lt;br&gt;
Check in this order:&lt;/p&gt;

&lt;p&gt;Run tpm.msc on the device. Specification Version must show 2.0 — if it shows 1.2, the device is not supported for Self-Deploying mode.&lt;br&gt;
Open BIOS/UEFI → Security → TPM → must be set to Enabled. Not just present. Actually enabled.&lt;br&gt;
If TPM shows 2.0 but error persists → Clear TPM in BIOS, then retry. This fixes corrupted TPM state from previous enrollment attempts.&lt;br&gt;
Open CMD via Shift+F10 during OOBE and run: Test-NetConnection -ComputerName login.microsoftonline.com -Port 443&lt;br&gt;
Check Event Viewer: Microsoft-Windows-ModernDeployment-Diagnostics-Provider → Autopilot&lt;/p&gt;

&lt;p&gt;Note: Hyper-V virtual TPMs are NOT supported for Autopilot Self-Deploying mode. If you're testing on a VM, this error is expected and cannot be fixed.&lt;/p&gt;

&lt;p&gt;Error 2: 0x80180014 — Re-enrollment after reset fails&lt;br&gt;
After a first Self-Deploying or Pre-Provisioning deployment, Intune blocks re-enrollment of the same device.&lt;br&gt;
Fix:&lt;/p&gt;

&lt;p&gt;Intune Admin Center → Devices → All Devices → find the device → Delete&lt;br&gt;
Redeploy — it will now enroll fresh&lt;/p&gt;

&lt;p&gt;If caused by a malformed Hardware Hash CSV: never open the CSV in Excel. Excel corrupts the binary hash format silently. Re-collect with PowerShell: Get-WindowsAutopilotInfo -OutputFile C:\hash.csv&lt;/p&gt;

&lt;p&gt;Error 3: No company branding on OOBE — standard Windows setup appears&lt;br&gt;
The Autopilot profile was not received by the device.&lt;br&gt;
Root causes in order of likelihood:&lt;/p&gt;

&lt;p&gt;Device is not registered in the Autopilot service at all&lt;br&gt;
Profile is not assigned to a group the device belongs to&lt;br&gt;
No network connection at first boot&lt;br&gt;
Group sync has not completed after device import&lt;/p&gt;

&lt;p&gt;The dynamic group rule must be: (device.devicePhysicalIds -any (_ -eq "[ZTDId]"))&lt;br&gt;
Quick test: after connecting to network during OOBE, wait 60 seconds. If the sign-in page shows your company name and logo, the profile was received. If it shows the generic Microsoft logo, the profile was not received.&lt;/p&gt;

&lt;p&gt;Error 4: 0x80180005 — "ZTD Profile was not assigned to ZTD Device"&lt;br&gt;
Commonly seen during Pre-Provisioning (White Glove) mode in the technician phase.&lt;br&gt;
Fix:&lt;/p&gt;

&lt;p&gt;Delete all objects for this device in Intune, Entra ID, and local AD if Hybrid&lt;br&gt;
Re-register the device with a fresh Hardware Hash&lt;br&gt;
Verify the profile is assigned to the dynamic device group&lt;br&gt;
Wait 15 minutes for sync to complete before retrying&lt;/p&gt;

&lt;p&gt;Error 5: ESP stuck or timing out&lt;br&gt;
Common causes: a Win32 app failing to install, ESP timeout too low for your app payload (60 minutes default is often not enough), or slow internet during large app downloads.&lt;br&gt;
Diagnose with: Get-AutopilotDiagnostics (install from PowerShell Gallery first)&lt;br&gt;
Fixes:&lt;/p&gt;

&lt;p&gt;Increase ESP timeout to 90-120 minutes: Intune → Windows Enrollment → ESP&lt;br&gt;
Check app configuration in Intune: correct requirements? All dependencies present?&lt;br&gt;
Temporarily disable ESP to isolate whether the issue is app-related&lt;/p&gt;

&lt;p&gt;Error 6: 0x8007052E — "Registering your device for mobile management failed"&lt;br&gt;
Authentication failure during enrollment.&lt;br&gt;
Common causes: incorrect credentials during OOBE, a Conditional Access policy blocking the unenrolled device, or firewall blocking Microsoft endpoints.&lt;br&gt;
Fix:&lt;/p&gt;

&lt;p&gt;Check Entra ID Sign-in logs: Entra Admin Center → Monitoring → Sign-ins → find the failed event → Conditional Access tab&lt;br&gt;
If a CA policy is blocking: temporarily exclude the device or user during enrollment&lt;br&gt;
Verify all Autopilot network endpoints are reachable on port 443&lt;/p&gt;

&lt;p&gt;I put together a complete PDF guide covering all errors in full detail, a complete 8-step deployment walkthrough, recommended profile settings, and a 24-item checklist — all sourced directly from official Microsoft documentation.&lt;br&gt;
Get it here: &lt;a href="https://exactey.gumroad.com/l/windows-autopilot-setup-guide" rel="noopener noreferrer"&gt;https://exactey.gumroad.com/l/windows-autopilot-setup-guide&lt;/a&gt;&lt;br&gt;
Questions? Drop them in the comments — happy to help.&lt;/p&gt;

</description>
      <category>intune</category>
      <category>microsoft</category>
      <category>sysadmin</category>
    </item>
  </channel>
</rss>
