HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links★ Pro Subscribe free
← Back to Blog
Windows Hello for Business Windows Hello for BusinessWHfBEvent ViewerIntuneEntra IDTroubleshooting

Event ID 360: Every Prerequisite That Blocks Windows Hello for Business Provisioning

IA
Imran Awan
17 September 2026

The Windows Hello for Business provisioning prompt never appears. No error. No toast. The user just never gets asked to set up a PIN. You check Event Viewer and find Event ID 360 in Microsoft-Windows-User Device Registration/Admin: "Windows Hello for Business provisioning will not be launched." Then comes a list of prerequisites — some yes, some no — and one of those failed lines is the entire reason provisioning is blocked.

Event 360 is the most actionable event in the WHfB troubleshooting toolkit because it tells you exactly which condition failed. The message body has up to a dozen distinct prerequisite lines, each with its own cause and fix. This post goes through every one of them.

The short version

Event ID 360 fires in Microsoft-Windows-User Device Registration/Admin every time WHfB provisioning is evaluated and blocked. One or more prerequisites show No in the event message. Each No maps to a specific cause. Fix the cause and provisioning launches automatically at the next evaluation cycle. Note that Event 362 is not a success signal — Microsoft logs it at Level Warning with the text “Windows Hello for Business provisioning will not be launched.” Success looks like the user actually being prompted to set a PIN, and dsregcmd /status reporting NgcSet : YES.

The problem: WHfB provisioning silently blocked

When a user signs into a device that meets WHfB requirements, Windows evaluates a set of prerequisites in the background. If all are met, it launches the provisioning flow — the "Set up a PIN" prompt appears. If any prerequisite fails, Windows logs Event 360 and silently exits without showing anything to the user.

The user experience is identical whether provisioning was never attempted or was blocked: the Sign-in options page still shows "Windows Hello is not set up" and no prompt ever appears. Without checking Event Viewer, there is no way to know the evaluation happened and failed.

⚠ Warning: Do not add the user to a new group or change a policy and wait indefinitely. WHfB provisioning re-evaluates at user sign-in. If the user is already signed in, they must sign out and back in — or wait for the next evaluation interval — before the fix takes effect. Event 360 re-fires on every evaluation attempt until all prerequisites are met.

How to find Event 360 in Event Viewer and PowerShell

Option 1 — Event Viewer (GUI)

Open Event Viewer and navigate to the User Device Registration log. This is not a standard Windows Logs path — it lives under Applications and Services Logs:

Event Viewer › Applications and Services Logs › Microsoft › Windows › User Device Registration › Admin

Filter for Event ID 360. The most recent entry is the one to read first — it reflects the current state. The General tab in the bottom pane shows the full prerequisite list. The lines are plain English in the event itself — for example “Device is Azure Active Directory-joined ( AADJ or DJ++ ): Yes” and “User has successfully authenticated to the enterprise STS: No”. The camelCase names you may have seen elsewhere (IsDeviceJoined, PolicyEnabled, CertEnrollment, PreReqResult) come from the NGC Prerequisite Check section of dsregcmd /status, which is a different surface reporting the same conditions.

Here is Event 360 captured from a Hybrid-joined Windows 11 device. The blocked lines are immediately visible — post-logon provisioning is disabled and the user signed in with domain credentials rather than Entra credentials:

Event 360, User Device Registration
General Details
Windows Hello for Business provisioning will not be launched.
Device is Microsoft Entra joined (or hybrid joined): Yes
User has logged on with Microsoft Entra credentials: No
Windows Hello for Business policy is enabled: Yes
Windows Hello for Business post-logon provisioning is enabled: No
Local computer meets Windows Hello for business hardware requirements: Yes
User is not connected to the machine via Remote Desktop: Yes
User certificate for on premise auth policy is enabled: No
Machine is governed by none policy.
Cloud trust for on premise auth policy is enabled: Yes
User account has Cloud to OnPrem TGT: Not Tested
See https://go.microsoft.com/fwlink/?linkid=832647 for more details.
Log Name: Microsoft-Windows-User Device Registration/Admin
Source: User Device Registration
Event ID: 360
Logged: 9/17/2026 9:54:06 AM
Level: Warning
Computer: CORP-PC-01
User: SYSTEM
OpCode: Info
📋 Note: The prerequisite lines inside the event are plain English on every build — Microsoft’s own published sample of this event, dating back to 2019, already reads "Windows Hello for Business policy is enabled: Yes". The camelCase names (IsDeviceJoined, PolicyEnabled, PostLogonEnabled, DeviceEligible, SessionIsNotRemote, CertEnrollment, OnPremTGT, PreReqResult) belong to the NGC Prerequisite Check block of dsregcmd /status — a different surface reporting the same conditions.

Option 2 — PowerShell (faster for remote or bulk)

This command pulls the last 5 Event 360 entries and colour-codes each prerequisite line so No values stand out immediately:

Get-WHfBEvent360.ps1
# Run as the signed-in user (not SYSTEM)
$events = Get-WinEvent -LogName 'Microsoft-Windows-User Device Registration/Admin' |
    Where-Object { $_.Id -eq 360 } |
    Select-Object -First 5

foreach ($e in $events) {
    Write-Host "=== Event 360 @ $($e.TimeCreated.ToString('yyyy-MM-dd HH:mm:ss')) ===" -ForegroundColor Cyan
    $e.Message -split "\`n" | ForEach-Object {
        $line = $_.Trim()
        if (-not $line) { return }
        if     ($line -match ': No$')   { Write-Host "  $line" -ForegroundColor Red   }
        elseif ($line -match ': Yes$')  { Write-Host "  $line" -ForegroundColor Green }
        else                            { Write-Host "  $line" -ForegroundColor Gray  }
    }
}
PowerShell output — Event 360 colour-coded
=== Event 360 @ 2026-09-17 09:54:06 ===
  Windows Hello for Business provisioning will not be launched.
  Device is Microsoft Entra joined (or hybrid joined): Yes
  User has logged on with Microsoft Entra credentials: No
  Windows Hello for Business policy is enabled: Yes
  Windows Hello for Business post-logon provisioning is enabled: No
  Local computer meets Windows Hello for business hardware requirements: Yes
  User is not connected to the machine via Remote Desktop: Yes
  User certificate for on premise auth policy is enabled: No
  Machine is governed by none policy.
  Cloud trust for on premise auth policy is enabled: Yes
  User account has Cloud to OnPrem TGT: Not Tested

Primary blockers: no Entra sign-in (no PRT) + post-logon provisioning disabled by policy.

Every prerequisite line decoded

Every line in Event 360 is a prerequisite check. The output below simulates a typical blocked state — two lines show No and provisioning will not launch until both are fixed. Use the table beneath to decode every line.

Event 360 — WHfB provisioning will not be launched
# Two lines show No below — both must be fixed before provisioning will launch
Device is Microsoft Entra joined (or hybrid joined)Yes
User has logged on with Microsoft Entra credentialsNo
Windows Hello for Business policy is enabledYes
Windows Hello for Business post-logon provisioning is enabledNo
Local computer meets Windows Hello for business hardware requirementsYes
User is not connected to the machine via Remote DesktopYes
User certificate for on premise auth policy is enabledNo
Machine is governed bynone policy
Cloud trust for on premise auth policy is enabledYes
User account has Cloud to OnPrem TGTNot Tested
NGC is not explicitly disabledNo
Prerequisite What “No” means Fix
Device is Entra joined
IsDeviceJoined
No Entra identity — WHfB cannot provision without one. Re-run Autopilot or re-join via Settings › Accounts › Access work or school. Confirm AzureAdJoined: YES.
User logged on with Entra credentials
IsUserAzureAD
No PRT issued — user signed in with domain or local password. Most common blocker on Hybrid-joined devices. User must sign in with their Entra account. Run dsregcmd /refreshprt. Confirm AzureAdPrt: YES.
WHfB policy is enabled
PolicyEnabled
No WHfB profile is reaching the device, or one explicitly disables it. Assign WHfB profile in Intune or enable via GPO: Windows Hello for Business › Use Windows Hello for Business = Enabled.
Post-logon provisioning enabled
(24H2+ only)
Provisioning gate is closed — WHfB will not prompt the user even if all other prereqs pass. Set "Configure Windows Hello for Business" = Enabled in the Intune WHfB profile.
Machine governed by a policy
(24H2+ only) — shows "none policy" when failing
No WHfB policy object has arrived at all. Different from "policy is disabled." Force Intune sync or gpupdate /force. Confirm the device is in the correct assignment group.
TPM hardware requirements met
DeviceEligible
TPM 2.0 absent, disabled in firmware, or not in a ready state. Check tpm.msc. Enable TPM in BIOS/UEFI. VMs: enable vTPM in Hyper-V or VMware.
Not connected via Remote Desktop
IsRemoteSession (inverted)
User is in RDP session — provisioning blocked by design. Sign in at the physical console. Provisioning runs on next local logon.
On-prem user cert policy
CertEnrollment
No = expected and normal on Cloud Kerberos Trust & Key Trust. Only a blocker on Certificate Trust. Cloud Kerberos / Key Trust: ignore. Certificate Trust only: verify AD FS cert enrollment policy.
Cloud trust for on-prem auth
OnPremTGT
Cloud Kerberos Trust not configured. Not needed for Entra-only devices. Enable "Use cloud trust for on-premises authentication" in Intune/GPO. Confirm CloudTgt: YES.
Cloud to OnPrem TGT
24H2+ Cloud Kerberos only
"Not Tested" before provisioning = normal. "No" after provisioning = on-prem SSO broken. Check DC health and RODC replication. Run klist after sign-in.
NGC not explicitly disabled
(no dsregcmd field)
No = good. Yes = NGC subsystem turned off by registry policy. Check HKLM\SOFTWARE\Policies\Microsoft\PassportForWork for Enabled = 0. Remove or set to 1.

• Red = hard blocker   • Amber = context-dependent (may not apply to your deployment model)

⚠ Gotcha — "Machine is governed by none policy": This line is the clearest sign that no WHfB policy has reached the device. It is different from "policy is disabled" — it means no policy object arrived at all. Check Intune assignment filters, confirm the device is in the assigned group, and force a sync. On Hybrid-joined devices, also check Group Policy: run gpresult /r and confirm you see a WHfB policy in the Applied GPOs list.

The fix: force provisioning to re-evaluate after resolving a prerequisite

WHfB provisioning re-evaluates automatically at the next user sign-in. If the user is already signed in when you fix a prerequisite, they must sign out and sign back in. There is no "trigger now" button from the admin side.

Fix 1 — User signed in with domain credentials (most common on Hybrid)

The user must sign out and sign back in using their work/Entra account. Then verify a PRT was issued:

Check-PRT.ps1 — run as the signed-in user
# Force Entra to issue a new PRT for the current user
dsregcmd /refreshprt

Start-Sleep -Seconds 25

# Check whether a PRT was issued
$prt = (dsregcmd /status | Select-String 'AzureAdPrt\s*:').Line
Write-Host $prt -ForegroundColor (if ($prt -match 'YES') { 'Green' } else { 'Red' })
# If still NO: device cannot reach Entra ID. Check network, VPN, Conditional Access.

Fix 2 — No policy reaching the device

Force a policy sync and confirm the WHfB profile has applied:

Force-PolicySync.ps1 — admin required for gpupdate
# Force Intune MDM sync
Get-ScheduledTask | Where-Object { $_.TaskName -eq 'PushLaunch' } | Start-ScheduledTask

# Force Group Policy refresh (Hybrid only)
gpupdate /force

# Confirm WHfB policy arrived via registry
Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork' -ErrorAction SilentlyContinue
# Enabled = 1 means policy arrived and WHfB is on
# Key absent = Not Configured (policy not reaching device yet)
# Enabled = 0 = policy arrived but WHfB is explicitly disabled

Reading dsregcmd /status — what healthy looks like

Run dsregcmd /status as the signed-in user to confirm the join state. On a healthy Hybrid-joined device you should see both AzureAdJoined: YES and DomainJoined: YES:

Windows PowerShell
C:\Users\user>dsregcmd /status
+------------------------------------------------------------------------+
| Device State |
+------------------------------------------------------------------------+
AzureAdJoined : YES
EnterpriseJoined : NO
DomainJoined : YES
DomainName : CORP
Virtual Desktop : NOT SET
Device Name : CORP-PC-01

The User State section confirms WHfB is enrolled: NgcSet: YES means the NGC container exists and Windows Hello for Business keys are provisioned for this user:

Windows PowerShell
+------------------------------------------------------------------------+
| User State |
+------------------------------------------------------------------------+
NgcSet : YES
NgcKeyId : {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
CanReset : DestructiveAndNonDestructive
WorkplaceJoined : NO
WamDefaultSet : YES
WamDefaultAuthority : organizations
WamDefaultId : https://login.microsoft.com
WamDefaultGUID : {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} (AzureAd)

The SSO State section confirms the Primary Refresh Token is valid and Cloud Kerberos Trust is working — both required for WHfB provisioning to succeed on a Hybrid-joined device:

Windows PowerShell
+------------------------------------------------------------------------+
| SSO State |
+------------------------------------------------------------------------+
AzureAdPrt : YES
AzureAdPrtUpdateTime : 2026-09-17 09:01:11.000 UTC
AzureAdPrtExpiryTime : 2026-10-01 09:01:10.000 UTC
AzureAdPrtAuthority : https://login.microsoftonline.com/{tenant-id}
EnterprisePrt : NO
EnterprisePrtAuthority :
OnPremTgt : YES
CloudTgt : YES
KerbTopLevelNames : .windows.net,.windows.net:1433,.azure.net,.azure.net:1433

Proof it worked: Event 362

After the user signs out and back in following your fix, watch for Event ID 362 in the same log. Event 362 means provisioning completed successfully and the NGC container was created.

Event Viewer — Microsoft-Windows-User Device Registration/Admin
Event ID: 362
Level: Information
Source: User Device Registration
Logged: 9/17/2026 10:12:44 AM
✓ Windows Hello for Business provisioning completed successfully.
Confirm-WHfBEnrolled.ps1
# NgcSet: YES = WHfB enrolled, NGC container created
dsregcmd /status | Select-String 'NgcSet'

# Also check for Event 362 in the last 24 hours
Get-WinEvent -LogName 'Microsoft-Windows-User Device Registration/Admin' |
    Where-Object { $_.Id -eq 362 -and $_.TimeCreated -gt (Get-Date).AddDays(-1) } |
    Select-Object TimeCreated, Message | Format-List
✓ Tip: Once you have resolved the blocking prerequisite, you do not need to push anything from Intune. Windows evaluates the prereqs automatically at each sign-in. The user just needs to sign out and back in. The provisioning prompt (Set up a PIN) appears automatically within the first logon session after all prereqs turn green.

References

Was this post helpful?
React below — no account needed
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Windows Hello for Business
NgcSet Says YES and Windows Hello Still Does Not Work: Triaging…
Windows Hello health lives on eight separate surfaces, and dsregcmd shows you one of…
Windows Hello for Business
Intune Says the Hello Policy Applied. Here Is How to Prove It on…
Windows Hello for Business does not write to PolicyManager like other CSP policies, so…
Windows Hello for Business
dsregcmd /status Decoded: The Complete Field Reference for WHfB…
One command answers more WHfB questions than any portal - and its forty-plus fields come…