HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows Hello for Business WHfBEvent IDEvent ViewerReferenceTroubleshootingProvisioning

The Complete Windows Hello for Business Event ID Catalog (Across All Three Logs)

IA
Imran Awan
31 July 2026

When Windows Hello for Business (WHfB) misbehaves, the answer is almost always sitting in an event log - but across three different logs, with cryptic IDs and no index. Admins waste hours in the wrong log or reading the wrong events. This is the catalog: which log holds what, the event IDs that actually matter for WHfB, and what each one is telling you. Bookmark it and stop guessing which log to open.

The problem: WHfB logs to three places, none obvious

There is no single "Windows Hello" log. Provisioning writes to one place, device unlock to another, and token/PRT activity to a third. If you only know about one of them, you will miss the event that explains your problem. Worse, the most useful log - User Device Registration - is buried deep in the Applications and Services tree where nobody looks by default.

Why it happens: each component owns its own log

There is no single "Windows Hello" log because three different Windows components handle three different parts of the credential lifecycle, and each writes to its own operational channel: the device-registration engine records provisioning, the Windows Hello / Passport unlock provider records device unlock, and the Microsoft Entra token broker records PRT and token activity. Nobody consolidated them, so the story of a single Hello failure is split across three places - and the most useful one is buried deep in the Applications and Services tree.

How to verify: pull the events fast

You do not need to click through Event Viewer. Get-WinEvent pulls any of these logs directly - here is the User Device Registration provisioning log, newest first:

Windows PowerShell
# Provisioning events (358 launch / 360 blocked / 362 / 363) Get-WinEvent -LogName 'Microsoft-Windows-User Device Registration/Admin' -MaxEvents 20 | Select-Object TimeCreated, Id, LevelDisplayName, Message # Device Unlock events (3520/5520/6520/7520/8520) Get-WinEvent -LogName 'Microsoft-Windows-HelloForBusiness/Operational' -MaxEvents 20
Watch out: Event 360 is logged as a Warning, not an Error - so default Event Viewer filters and most "errors only" SIEM rules hide it completely. If you are looking for a red error to explain why provisioning never happened, you will not find one. Alert on Warning-level 360 in the User Device Registration log explicitly, or every blocked provisioning stays invisible.
Gotcha: Get-WinEvent throws a non-terminating "No events were found that match the specified selection criteria" if a log is empty - which is normal on a healthy device (for example, the Device Unlock log is empty if you never configured trusted-signal unlock). That message is not an error in your query; wrap the call in a try/catch if you are scripting across a fleet so an empty log does not look like a failure.

The fix: the three logs and the IDs that matter

Log 1 - User Device Registration (provisioning)

The provisioning story lives here: Event Viewer › Applications and Services Logs › Microsoft › Windows › User Device Registration › Admin. This is where you look when a user is not getting a PIN prompt, or provisioning is failing.

Event IDMeaning
358Windows Hello for Business provisioning will be launched - the prerequisites passed and enrolment is starting
360Windows Hello for Business provisioning will not be launched - a prerequisite failed (a Warning; the detail says which check)
362Provisioning blocked because device authentication did not succeed ("User has successfully authenticated to the enterprise STS: No")
363The Microsoft Passport (NGC) key is missing

Event 360 is the one you will see most - and it is a Warning, not an Error, so it is easy to overlook. Its body lists the prerequisite results, mirroring the NGC Prerequisite Check block in dsregcmd /status. Read the two together:

⚠ User Device Registration — Event ID 360 (Warning)
Log: Microsoft-Windows-User Device Registration/Admin
Message: Windows Hello for Business provisioning will not be launched.
Detail: Device is Azure Active Directory-joined ( AADJ or DJ++ ): Yes ... User has successfully authenticated to the enterprise STS: No

Log 2 - HelloForBusiness (device unlock and Hello operations)

Multifactor / trusted-signal device unlock writes to its own operational log: Applications and Services Logs › Microsoft › Windows › HelloForBusiness › Operational, under the Device Unlock category. When you have configured trusted-signal unlock and want to know whether it is actually working, this is the log:

Event IDMeaning
3520Unlock attempt initiated
5520Unlock policy not configured
6520Warning event
7520Error event
8520Success event

A clean multifactor unlock is a 3520 followed by an 8520. A 5520 ("policy not configured") on a device you targeted means the policy did not apply - check assignment and the credential-provider GUIDs, not the signal.

✓ HelloForBusiness — Event ID 8520 (Device Unlock)
Log: Microsoft-Windows-HelloForBusiness/Operational
Task category: Device Unlock
Message: Multifactor device unlock succeeded

Log 3 - AAD (token and PRT activity)

Primary Refresh Token (PRT) acquisition and cloud-auth activity is logged under Applications and Services Logs › Microsoft › Windows › AAD › Operational. This is where sign-in/token problems that underlie an SSO failure surface. In practice, though, the best-formatted PRT diagnostics are not an event ID at all - they are the AcquirePrtDiagnostics block in dsregcmd /status, which gives you the HRESULT, credential type, and exact server error in one place.

Note: Do not go hunting for a specific AAD/Operational event ID for "PRT failed." For PRT and token issues, read the AcquirePrtDiagnostics / RefreshPrtDiagnostics block from dsregcmd /status first - it contains the Attempt Status HRESULT and the server error description in plain text. The AAD/Operational log is the deeper backup, not the starting point.

Proof it worked: the catalog at a glance

SymptomLog to openLook for
No PIN prompt / provisioning failsUser Device Registration / Admin360 (blocked) + its prerequisite detail; 362 / 363
Provisioning started but stalledUser Device Registration / Admin358 (launched), then the following entries
Trusted-signal unlock not workingHelloForBusiness / Operational5520 (not configured), 7520 (error), 3520→8520 (success)
SSO / token failuresdsregcmd first, then AAD / OperationalAcquirePrtDiagnostics block; server error code
Tip: Pair the logs with dsregcmd /status, do not choose between them. The event log tells you what happened and when (a 360 at 09:14); dsregcmd tells you the current state and the prerequisite that failed. Together they turn "Hello is broken" into "provisioning was blocked at 09:14 because enterprise STS authentication failed" - which is an answer, not a symptom.

References

PowerShell Scripts — WHfB Event Report

Script for this post is in Daily-Tasks.

Get-WHfBEventReport.ps1 — read-only: pulls recent events from all three WHfB logs, maps the known IDs to plain-English meanings, and prints one timeline
View all scripts on GitHub
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

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…
Windows Hello for Business
Windows Hello Signs In Fine but File Shares Prompt: Fixing…
The user signs in with their PIN and cloud apps work, but a file share throws a…
Windows Hello for Business
Windows Hello Survives a Password Change - Your Saved…
Changing a password does not break WHfB sign-in - it uses a key, not the password. But a…