Checklist
Windows Hello for Business provisioning checklist
Based on the article: Windows Hello for Business provisioning errors in Intune: 0x801C03ED, Event 360 and more · 6 min read
Windows Hello for Business provisioning fails in one of two ways: the Create a PIN step stops with a hex code, or the PIN prompt never appears at all. In this post I'll match the documented 0x801C and 0x8009 codes to their causes, decode the Event ID 360 prerequisite lines, untangle conflicting policy sources, and prove the fix with dsregcmd /status.
Symptoms to confirm
- The PIN setup wizard fails and shows one of these codes (the descriptions are Microsoft's):
0x801C03ED Multi-factor authentication is required for a 'ProvisionKey' operation, but wasn't performed.
0x801C000E Registration quota reached.
0x801C03F2 Windows Hello key registration failed.
0x801C044D Authorization token doesn't contain device ID.
0x80090035 Policy requires TPM and the device doesn't have TPM.
0x80090029 TPM isn't set up.- A user who already has a PIN can't sign in with it:
0xC00000BB Your PIN or this option is temporarily unavailable. - No PIN prompt appears after sign-in, and Applications and Services Logs › Microsoft › Windows › User Device Registration › Admin holds a warning like this one, posted by an admin on Microsoft Q&A from a PC where the user hadn't signed in with Microsoft Entra credentials:
Event ID 360
Windows Hello for Business provisioning will not be launched.
Device is AAD joined ( AADJ or DJ++ ): Not Tested
User has logged on with AAD credentials: No
Windows Hello for Business policy is enabled: Not Tested
Windows Hello for Business post-logon provisioning is enabled: Not Tested
Local computer meets Windows hello for business hardware requirements: Not Tested
User is not connected to the machine via Remote Desktop: Yes
User certificate for on premise auth policy is enabled: Not Tested
Machine is governed by none policy.
Cloud trust for on premise auth policy is enabled: Not Tested
User account has Cloud TGT: Not TestedLikely causes
At every sign-in Windows runs a prerequisite check.
| Event 360 line | dsregcmd field | Usual cause when it fails |
|---|---|---|
| Device is AAD joined | IsDeviceJoined | Join incomplete |
| User has logged on with AAD credentials | IsUserAzureAD | Local account, or no Primary Refresh Token (AzureAdPrt : NO) |
| Windows Hello for Business policy is enabled | PolicyEnabled | Policy missing or disabled by another source |
| Post-logon provisioning is enabled | PostLogonEnabled | A policy suppresses automatic provisioning (DisablePostLogonProvisioning, "Do not start Windows Hello provisioning after sign-in" in Group Policy) |
| Meets hardware requirements | DeviceEligible | TPM required by policy but missing or not ready |
| Not connected via Remote Desktop | SessionIsNotRemote | RDP session; provisioning needs the console |
| Cloud trust policy / Cloud TGT | OnPremTGT (CloudTGT before Windows 11 23H2) | Cloud Kerberos trust on, but no partial TGT for the user's domain |
- The wizard codes point to different layers:
| Code | What it usually means | Fix |
|---|---|---|
0x801C03ED | MFA wasn't completed, the token was missing, or the user isn't allowed to join devices | Give the user a usable MFA method (a Temporary Access Pass for new starters), allow them to join devices in Entra Device settings, sign out and in |
0x801C000E | The user hit the Entra "maximum number of devices per user" limit | Delete stale devices or raise the limit in Device settings |
0x801C03F2 | Directory error; Microsoft documents a duplicate proxyAddresses value | Fix the sync conflict; mail must match the primary SMTP proxy address |
0x801C044D | Device identity or user token problem | Check network and credentials, sign out and in; if the token still has no device ID, Microsoft's fix is to unjoin and rejoin |
0x80090035, 0x80090029 | Policy requires a TPM (the tenant-wide Use a Trusted Platform Module (TPM) defaults to Required) and it's absent, disabled or not set up | Enable the TPM in firmware or run Prepare the TPM in tpm.msc; drop the TPM requirement only as a deliberate security decision |
0xC00000BB | The domain controller can't support the sign-in method: usually a missing KDC certificate or an unreachable CRL (key and certificate trust) | Fix domain controller certificates, or move to cloud Kerberos trust |
Checklist
- 1
Capture the evidence
the wizard code, and the newest Event 360 in the User Device Registration Admin log.
- 2
Run
dsregcmd /statusas the user(not elevated). Check
AzureAdJoined,AzureAdPrt,NgcSetand the Ngc Prerequisite Check. - 3
Check the TPM
if
DeviceEligibleis NO or you see a 0x8009 code:Get-Tpmshould showTpmPresentandTpmReadyas True. Clearing a TPM wipes its keys; make sure the BitLocker recovery key is escrowed first. - 4
Use one policy source
Windows Hello for Business can come from the tenant-wide policy (Devices › Enrollment, Windows tab, Windows Hello for Business), from settings catalog or Endpoint security › Account protection profiles, and from Group Policy. Find stray settings with:
powershell# Group Policy source (should be empty when Intune manages Windows Hello) reg query "HKLM\SOFTWARE\Policies\Microsoft\PassportForWork" /s reg query "HKCU\SOFTWARE\Policies\Microsoft\PassportForWork" /s # MDM source (one subkey per tenant ID) reg query "HKLM\SOFTWARE\Microsoft\Policies\PassportForWork" /s # Which GPO sets it? gpresult /h "$env:USERPROFILE\Desktop\gp.html" - 5
Fix the code-specific cause
from the table above.
- 6
Reset and retry
Provisioning is evaluated at the next sign-in, so sign out and back in.
Verify
- Before the PIN prompt, the User Device Registration log shows Event 358 (Windows Hello for Business provisioning will be launched) and dsregcmd shows
PreReqResult : WillProvision. - After setup,
dsregcmd /statusshowsNgcSet : YESwith anNgcKeyIdunder User State, andAzureAdPrt : YESunder SSO State. With cloud Kerberos trust, expectOnPremTgt : YEStoo. - On hybrid devices,
klistafter a PIN sign-in lists akrbtgtticket for your AD realm.
Tip: 0xCAA30193 (HTTP 403) means a server, proxy or firewall refused the request. Test from a network without TLS inspection before changing policy.
Key takeaways
- No prompt means a prerequisite failed (read Event 360); a wizard code means provisioning started (use the code table).
- Configure Windows Hello for Business from one source and set the tenant-wide enrollment setting deliberately.
- Pre-register MFA, clean up stale devices, and check
Get-Tpmbefore you require a security device.