HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows Hello for Business WHfBTPMRequireSecurityDeviceTPM LockoutfTPMPTT

TPM and Windows Hello for Business: Require It, Diagnose It, and the Firmware-TPM Traps

IA
Imran Awan
31 July 2026

Everything that makes Windows Hello for Business (WHfB) more secure than a password comes down to one chip: the Trusted Platform Module (TPM). The TPM is what makes the private key unexportable - it never leaves the hardware, so a stolen credential cannot be replayed on another machine. But the TPM is also where a surprising number of Hello problems start: software-key fallback you did not intend, a lockout that blocks PIN entry, and firmware-TPM quirks on consumer hardware. This post explains how WHfB uses the TPM, how to require it properly, and how to diagnose the TPM-side failures.

The problem: "Hello isn't asking for hardware"

Two failure shapes bring admins here. The first is silent and dangerous: WHfB provisioned a credential in software because the device had no usable TPM, and nobody required hardware - so the "unexportable key" security guarantee simply is not there. The second is loud: a user cannot enter their PIN at all, or Hello throws errors, because the TPM has gone into lockout after too many failed operations. Same chip, opposite symptoms.

Watch this post — NotebookLM Audio Overview

Generated with NotebookLM · Subscribe at endpointweekly.com

Why it happens: the TPM is optional unless you make it mandatory

During provisioning, WHfB generates the credential's key pair and, if a TPM is present, the TPM generates and seals the private key so it can never be exported. If the device has no usable TPM, WHfB will - by default - fall back to generating and encrypting the key in software. That fallback keeps Hello working on TPM-less hardware, but a software key does not carry the anti-theft guarantee. The default is "prefer TPM, accept software," and only a policy makes it "require TPM."

Watch out: If you have not set the Use a hardware security device policy (RequireSecurityDevice), some of your fleet may be running WHfB on software keys and you would never know from the portal. On those devices the credential is no more hardware-bound than a stored secret. Require the security device explicitly - do not assume every device provisioned into the TPM.

How WHfB uses the TPM

The mechanics are worth understanding because they explain both the security and the failure modes. The credential's protector key (tied to your PIN or biometric) performs a TPM seal operation using the gesture as entropy - so the key can only be released on this TPM, by this gesture. TPM-enabled devices also generate an attestation block proving the key really lives in hardware. That seal is the anti-replay property: move the on-disk data to another machine and it is useless, because the sealing TPM is not there.

Note: WHfB supports TPM 1.2 and 2.0, but TPM 1.2 only allows RSA and SHA-1 and has inconsistent lockout behaviour across implementations - which causes real support pain. Microsoft recommends excluding TPM 1.2 from provisioning. In practice, require TPM 2.0 and let the handful of ancient 1.2 devices fall out of scope deliberately rather than misbehave.

How to verify: diagnose the TPM state

Get-Tpm is the one command that answers "is the TPM present, ready, and healthy?" The fields that matter: TpmPresent, TpmReady, and the lockout fields:

Windows PowerShell (Administrator)
Get-Tpm TpmPresent : True # a TPM exists TpmReady : True # and it is usable by WHfB LockedOut : False # True here = PIN/Hello operations blocked LockoutCount : 0 LockoutHealTime : 0 minutes # how long until it self-heals ManufacturerVersion : 7.2

If LockedOut : True, the TPM has seen too many failed authorisation attempts and has throttled itself - that is why the PIN is being rejected. Most TPMs self-heal after a cooldown (LockoutHealTime); the fix is usually to wait, not to reset anything. A cleared or reset TPM, by contrast, destroys the sealed keys and forces re-provisioning of Hello for every user on the device - so clearing the TPM is a last resort, not a first step.

These are the fields that matter from that output, decoded:

FieldMeaning
LockedOutWhether the TPM is currently refusing new PIN/authorisation attempts. True = every Hello sign-in is blocked at the hardware level until it clears.
LockoutCountA running tally of failed authorisation attempts recorded so far. Each wrong PIN increments it; once it reaches the TPM's built-in threshold, LockedOut flips to True.
LockoutHealTimeHow long until the TPM's own cooldown decrements LockoutCount and lifts the lockout on its own - this is why "wait" is usually the fix, not a reset.

The fix, part 1: require the TPM

Configure it via Intune (Settings Catalog)

  1. Sign in to the Intune admin center.
  2. Go to Devices › Configuration (under Manage devices), then select Create › New Policy.
  3. Set Platform to Windows 10 and later, and Profile type to Settings catalog. Select Create.
  4. Give the profile a name (for example WHfB - Require TPM), then select Next.
  5. Select Add settings, search for Windows Hello for Business in the settings picker, and tick Require Security Device. Close the picker.
  6. Set Require Security Device to True. Optionally also add Exclude Security Devices › TPM 1.2 and set it to True if you want to keep old TPM 1.2 hardware out of scope.
  7. Select Next, assign the profile to a pilot group first (not All devices), then Next › Create.
Intune admin centerDevices › ConfigurationCreate › New PolicySettings catalogWindows Hello for Business › Require Security Device = True

Configure it via Group Policy

  1. On a management workstation or domain controller, open the Group Policy Management Console (gpmc.msc).
  2. Right-click the organizational unit (OU) containing your target computer objects and select Create a GPO in this domain, and Link it here.... Name it (for example WHfB - Require TPM).
  3. Right-click the new GPO and select Edit to open the Group Policy Management Editor.
  4. Navigate to Computer Configuration › Administrative Templates › Windows Components › Windows Hello for Business.
  5. Double-click Use a hardware security device, set it to Enabled, and select OK.
  6. Close the editor. The policy applies at the next Group Policy refresh (or run gpupdate /force on a test machine to apply it immediately).
gpmc.mscComputer ConfigurationAdministrative Templates › Windows ComponentsWindows Hello for BusinessUse a hardware security device = Enabled

Both channels write the same underlying setting to different registry roots. Here is the full reference table for all four values:

ChannelSettingValue
Intune
(Settings Catalog)
Windows Hello for Business › Require Security Devicetrue
CSP.../PassportForWork/{TenantId}/Policies/RequireSecurityDeviceTrue
CSP
(exclude TPM 1.2)
.../PassportForWork/{TenantId}/Policies/ExcludeSecurityDevices/TPM12True
Group PolicyComputer Config › Admin Templates › Windows Components › Windows Hello for Business › Use a hardware security deviceEnabled
Gotcha: Requiring the security device means devices without a working TPM will not provision Hello at all - they stay on password. That is the correct security outcome, but it is also a support surprise if a batch of older or virtual machines silently stops offering Hello. Confirm your hardware actually has TPM 2.0 before you enforce, so "require" does not translate to "a chunk of the fleet can't use Hello."

Group Policy writes the requirement to the registry, which is where you can confirm it actually applied:

Registry Editor — applied hardware-device requirement
HKLM\SOFTWARE\Microsoft\Policies\PassportForWork\<TenantId>\Device\Policies
RequireSecurityDevice REG_DWORD 0x00000001 # 1 = TPM required, no software fallback

The fix, part 3: know the firmware-TPM quirks

Many business laptops do not have a discrete TPM chip - they use a firmware TPM baked into the CPU: Intel Platform Trust Technology (PTT) or AMD firmware TPM (fTPM). These are legitimate TPM 2.0 implementations, but they have known real-world quirks:

Watch out: Treat any firmware/BIOS update on your fleet as a potential TPM-clearing event. If Hello breaks for every user on a device right after a firmware update, the fTPM/PTT was almost certainly cleared - the credentials are gone and users must re-provision. This is not a WHfB bug; it is the seal working exactly as designed against a TPM that is no longer the same TPM.

Proof it worked

A correctly hardware-backed device shows Get-Tpm with TpmPresent : True, TpmReady : True, LockedOut : False; the WHfB policy shows RequireSecurityDevice enforced; and provisioning succeeded (so the key is sealed in hardware, not software). On a TPM-less device with the requirement enforced, Hello correctly does not provision - which is the intended, secure result.

Here is a real run of Get-TpmWhfbHealth.ps1 from this series, against a device that has a healthy TPM but has not yet had RequireSecurityDevice enforced - exactly the borderline case this post is about:

PowerShell — Get-TpmWhfbHealth.ps1 (real output)
TPM + WHfB Health ------------------------------------------------------------ TpmPresent : True TpmReady : True LockedOut : False LockoutCount : 0 ManufacturerVersion : 1.769.0.0 RequireSecurityDevice : not set (software fallback possible) # the finding to act on NgcSet (Hello present): YES ------------------------------------------------------------ TPM present, ready and not locked out - Hello can be hardware-backed.

Read this exactly the way the earlier sections describe: the TPM itself is healthy and not locked out, so nothing is currently broken, but RequireSecurityDevice is not enforced, so this device's Hello credential is hardware-backed by luck, not by policy. Enforcing the setting from "The fix, part 1" above turns this from a lucky pass into a guaranteed one.

Tip: Audit for software-key devices before you tighten. Run Get-Tpm across the fleet first: any device reporting TpmPresent : False or TpmReady : False is a candidate for a software-key Hello credential today. Fix the TPM state (enable PTT/fTPM in firmware, update firmware) on those devices before you flip RequireSecurityDevice, so you harden the credential rather than just knocking those users off Hello.

References

Want this checked automatically across the fleet instead of one device at a time? Below is a matching Intune Proactive Remediation pair: a detection script that flags TPM lockout and unenforced RequireSecurityDevice fleet-wide, and a remediation script that is deliberately report-only - it logs the finding to a CSV and the Application event log rather than silently patching policy or clearing a TPM, because neither of those is safe to automate blind.

PowerShell Scripts — TPM + WHfB Health

Script for this post is in Daily-Tasks.

Get-TpmWhfbHealth.ps1
— read-only: reports TPM present/ready/lockout, version and manufacturer, the RequireSecurityDevice policy, and whether the Hello key is likely hardware- or software-backed
Detect-TpmWhfbRisk.ps1
— Intune Proactive Remediation detection script: flags TPM lockout and unenforced RequireSecurityDevice fleet-wide
Repair-TpmWhfbRiskReport.ps1
— paired remediation script: report-only by design, logs findings to CSV + Event Log, changes nothing (see script header for why)
View all scripts on GitHub
Listen to this post — NotebookLM Audio Overview

Generated with NotebookLM · Subscribe at endpointweekly.com

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

More from EndpointWeekly

Windows Hello for Business
Inside the NGC Container: Why 'Just Delete the Ngc Folder' Is…
The NGC container is where your WHfB private key lives - and 'just delete the Ngc folder'…
Windows Hello for Business
Windows Hello for Business Not Working on a Hybrid-Joined Device…
WHfB signs in with a PIN but Event 360 keeps firing? This walkthrough traces the real…
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…