HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows Hello for Business WHfBWindows AutopilotEnrollment Status PageProvisioningIntuneOOBE

Windows Hello for Business During Autopilot: Why It Provisions When You Did Not Expect It

IA
Imran Awan
31 July 2026

A brand-new Autopilot device finishes the Enrollment Status Page, the user lands on the desktop, and up pops "Set up a PIN" - or worse, on a hybrid device, WHfB provisioning fails and the user is stuck. Nobody on your team configured that. This post explains why Windows Hello for Business (WHfB) provisions during Autopilot whether you asked for it or not, how the Enrollment Status Page (ESP) fits in, and how to take control of exactly when - or whether - it happens.

The problem: provisioning you did not schedule

Two things collide during an Autopilot deployment. First, WHfB is enabled by default on Microsoft Entra joined devices - and Autopilot produces Entra joined devices. Second, the tenant-wide WHfB enrolment policy is evaluated at the moment a device enrols. So unless you have explicitly turned it off, every Autopilot device is told "provision Hello" as it comes up, and the user gets the PIN setup experience right after sign-in.

On Entra joined devices that usually just works. On Entra hybrid joined Autopilot devices it is a classic support call: WHfB tries to provision, but the freshly deployed machine may not yet have line of sight to a domain controller (DC), or the on-premises prerequisites have not synced, and provisioning errors out at the worst possible moment - first boot for a new user.

Why it happens: the tenant policy fires at enrolment

The tenant-wide policy (Intune › Devices › Windows › Windows Enrollment › Windows Hello for Business) has one behaviour people forget: it only applies at enrolment time, and it applies to all devices that enrol. That is exactly the window Autopilot runs in. If that policy is left at its default, Autopilot devices provision Hello before your carefully targeted device-configuration policy has necessarily landed.

That is why Microsoft's own guidance is to disable the tenant-wide policy and instead enable WHfB through a policy targeted at a security group - so provisioning happens on your terms, for the devices and users you choose, with the trust model you intend. The tenant policy lives here:

Intune admin centerDevicesWindowsWindows EnrollmentWindows Hello for Business
Gotcha: Because the tenant policy is evaluated only at enrolment, changing it later does nothing for devices already deployed - and it changes the experience for every future enrolment at once. It is a blunt, global, enrolment-time switch. Treat it as "the default for new devices," not "the way I manage Hello."

How the Enrollment Status Page changes the timing

The ESP can hold a user at the out-of-box experience (OOBE) until the device has received its required policies. That is the lever that lets you control WHfB during Autopilot. If your "disable WHfB" or "use cloud Kerberos trust" device policy is in the ESP's blocking set, it applies before the user reaches the desktop - so Hello never provisions with the wrong (default) configuration, and hybrid devices are not asked to provision before they can reach a DC.

Understanding which policy wins matters here. WHfB settings resolve in this fixed order:

PrioritySource
1 (highest)User - Group Policy
2Computer - Group Policy
3User - PassportForWork CSP
4Device - PassportForWork CSP
5 (lowest)Exchange ActiveSync - DeviceLock CSP

How to verify what a device did during OOBE

After an Autopilot run, check whether Hello provisioned and why. dsregcmd /status shows the credential state and the join type - on a hybrid device confirm both join states are YES before expecting Hello to work on-premises:

Command Prompt
C:\> dsregcmd /status | findstr /i "AzureAdJoined DomainJoined NgcSet" AzureAdJoined : YES DomainJoined : YES # hybrid = both YES before Hello works on-prem NgcSet : YES # Hello provisioned during/after OOBE

Provisioning activity is logged in the User Device Registration admin log (Event Viewer › Applications and Services Logs › Microsoft › Windows › User Device Registration). That is where a provisioning attempt shows up - Event ID 358 is the "we're starting" marker, and a failed attempt on a hybrid device shows its real reason nearby, usually "no DC line of sight" or a missing prerequisite:

ℹ User Device Registration — Event ID 358
Log: Microsoft-Windows-User Device Registration/Admin
Message: Windows Hello for Business provisioning will be launched.
Time: at first sign-in, after prerequisite checks pass

The fix: decide when Hello provisions

Option A - Provision on your terms (recommended)

  1. Disable the tenant-wide enrolment policy so Autopilot devices do not auto-provision with the default configuration.
  2. Create a targeted device policy (Settings Catalog / Account protection) that enables WHfB with your chosen trust model - cloud Kerberos trust for most - and assign it to a pilot security group.
  3. Add that policy to the ESP blocking set so it lands during OOBE, before the desktop.

Option B - Defer provisioning until after enrolment

If you want the device fully enrolled and managed before Hello sets up (for example, so a hybrid device has DC connectivity first), use Don't start Windows Hello provisioning after sign-in - the DisablePostLogonProvisioning setting on the Use Windows Hello for Business policy. Hello then provisions when your process triggers it, not automatically at first sign-in.

Watch out: On hybrid Autopilot, do not let Hello provisioning depend on OOBE-time DC connectivity you cannot guarantee. Either use cloud Kerberos trust (which needs a partial ticket-granting ticket, not immediate DC line of sight to provision) or defer provisioning until the device is on a network that can reach a DC. Provisioning a key-trust credential at OOBE and then failing the first on-prem sign-in is the exact failure this planning avoids.
Note: WHfB is configured by Group Policy or CSP, never a mix - and MDMWinsOverGP does not arbitrate WHfB (it only covers the Policy CSP, and WHfB lives in the PassportForWork CSP). On an Entra hybrid joined Autopilot device that also receives Group Policy, a stray GPO can silently override your Intune WHfB settings. Confirm the device gets its WHfB policy from exactly one channel.

Proof it worked

A controlled Autopilot run looks like this: the device enrols with the tenant policy off, your targeted trust-model policy applies during ESP, and Hello provisions with your configuration - or defers cleanly if you chose Option B. dsregcmd /status shows the intended state (for cloud trust, OnPremTgt : YES after first DC sign-in), and the User Device Registration log shows a clean provisioning sequence with no OOBE-time failures.

Tip: Test Autopilot + WHfB on the slowest realistic network your users deploy on, including VPN-before-logon for hybrid. The default-on behaviour hides timing problems on a fast corporate LAN that surface immediately for a remote user setting up over home broadband. If it provisions cleanly there, it will everywhere.

References

PowerShell Scripts — WHfB Provisioning Trigger Check

Script for this post is in Daily-Tasks.

Get-WHfBProvisioningState.ps1 — read-only: reports join type, NgcSet, UsePassportForWork and DisablePostLogonProvisioning so you can see whether a device provisioned Hello at OOBE and why
View all scripts on GitHub
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Windows Hello for Business
The Complete Windows Hello for Business Event ID Catalog (Across…
WHfB logs to three different places with cryptic IDs and no index. This catalog maps…
Windows Hello for Business
How to Cleanly Disable or Remove Windows Hello for Business…
WHfB is enabled by default on every Entra joined device - Autopilot turned it on, not…
Windows Hello for Business
Windows Hello for Business PIN Complexity: Every Setting, CSP…
The WHfB PIN complexity Group Policy is not where you would look, and PIN expiration…