HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows Hello for Business WHfBDual EnrollmentPrivileged AccessCertificate TrustAdminSDHolderGroup Policy

Windows Hello for Business Dual Enrollment: A Privileged PIN for Admins (Cert-Trust Only)

IA
Imran Awan
31 July 2026

Your admins sign in to their laptop with a fingerprint for email and Teams. Then they need to run an elevated console as their privileged account - and there is no Windows Hello credential for that account, so they are back to typing a password, or switching users, or running a whole separate machine. Windows Hello for Business (WHfB) dual enrollment solves exactly this: one device, two Hello credentials, elevate with a PIN. It is powerful, it is narrow, and it comes with a hard requirement that surprises everyone - it only works on certificate trust.

Watch out - read this first: Microsoft is explicit that dual enrollment does not provide the security of a Privileged Access Workstation (PAW), and recommends PAW for privileged users wherever it can be used. Treat dual enrollment as a pragmatic option for cases where PAW is not feasible - not as a substitute for proper privileged-access tiering.

The problem: no Hello credential for the admin account

By design, Windows does not enumerate other users' WHfB credentials from within a signed-in user's session. That is a security feature - it stops one user seeing or using another's Hello credential. But it also means an administrator signed in with their day-to-day account cannot pick their privileged account's Hello credential to elevate. So elevation falls back to a password, which is the one thing passwordless was supposed to remove.

Why it happens - and the requirement nobody expects

Dual enrollment lets a single person enrol both their non-privileged and privileged accounts for Hello on the same device, then elevate to the privileged account with its PIN. But it is built on WHfB's smart-card emulation layer, and that ties it to specific deployment shapes:

RequirementValue
Trust typeCertificate trust only - not key trust, not cloud Kerberos trust
Deployment typeOn-premises or hybrid
Join typeDomain join or Microsoft Entra hybrid join
TimingMust be configured before either account provisions Hello on the device
Watch out: That first row is the deal-breaker most people hit. Dual enrollment requires certificate trust. If you have migrated to cloud Kerberos trust (which almost everyone should), dual enrollment is not available - and there is no cloud-trust equivalent. This is one of the very few genuine reasons to keep a certificate-trust configuration alive for a specific set of admin devices.

How to verify prerequisites

Confirm the device is on certificate trust and correctly joined before you start. A WHfB certificate-trust device has a Hello logon certificate (Passport-provider key, Smart Card Logon EKU, issued by your enterprise CA) and the cert-trust policy set. And dsregcmd /status must show the right join state:

Command Prompt
C:\> dsregcmd /status | findstr /i "DomainJoined AzureAdJoined" DomainJoined : YES # domain join or hybrid join required AzureAdJoined : YES

The fix: two configuration steps

Step 1 - Let the privileged account write its key past AdminSDHolder

Privileged accounts are protected by AdminSDHolder: every hour, Active Directory compares the security on protected users/groups against the AdminSDHolder object and resets anything that differs. The normal WHfB delegation gives the Key Admins group read/write on msDS-KeyCredentialLink at the domain root - but for a Domain Admin, AdminSDHolder strips that permission back off within the hour, so their Hello key can never persist. You fix it by granting the permission on AdminSDHolder itself:

Command Prompt (Domain Admin, on a DC)
C:\> dsacls "CN=AdminSDHolder,CN=System,DC=contoso,DC=com" ^ /g "CONTOSO\Key Admins":RPWP;msDS-KeyCredentialLink # RPWP = read property + write property, scoped to the one attribute

Then trigger security-descriptor propagation immediately (rather than waiting the hour) by setting RunProtectAdminGroupsTask = 1 via ldp.exe against the PDC-emulator DC.

Step 2 - Enable enumeration via Group Policy

This is a Group Policy-only setting - there is no CSP equivalent, so you cannot deploy it from Intune. Create a GPO linked to the organizational unit (OU) holding the admins' computers and enable:

Group policy pathSettingValue
Computer Configuration \ Administrative Templates \ Windows Components \ Windows Hello for BusinessAllow enumeration of emulated smart cards for all usersEnabled
Watch out - Intune shops: Allow enumeration of emulated smart cards for all users has no CSP and cannot be configured through Intune. It is Group Policy only. On a cloud-native, Intune-managed fleet this setting simply cannot be delivered - which, combined with the certificate-trust requirement, is why dual enrollment is a niche, traditional-AD feature.

Restart the targeted computers, then enrol in the right order: sign in as the privileged user first and set up Hello, then sign out, sign in as the non-privileged user, and set up Hello.

Note: The AdminSDHolder step is only needed for accounts that AdminSDHolder protects - members of Domain Admins, Enterprise Admins and other privileged groups. For a standard admin account used purely to elevate on a workstation, the normal domain-root Key Admins delegation on msDS-KeyCredentialLink already covers it, and you can skip the dsacls step.
Gotcha: Order and timing matter. Dual enrollment is a special flag set on the Windows Hello container at creation. If either account already provisioned Hello on the device before you enabled the policy, you must delete those containers (certutil -deletehellocontainer as each user) and re-provision after the policy is in place - otherwise the existing containers were not created with the dual-enrollment flag.

How the admin uses it

Once both credentials are enrolled, the admin signs in with their non-privileged account for normal work. To elevate, they choose Run as different user or Run as administrator, pick the privileged account, and authorise with that account's PIN - no password. For command line, runas.exe /smartcard does the same:

Command Prompt (as the non-privileged user)
C:\> runas /smartcard /user:CONTOSO\admin-jdoe "mmc.exe dsa.msc" # prompts for the privileged account's WHfB PIN, not a password

Proof it worked

Success looks like this: the admin, signed in as their standard user, launches an elevated tool, selects the privileged account, and is prompted for a PIN rather than a password - and the elevated process runs under the privileged identity. No fast-user-switching, no second laptop, no password typed.

Tip: Scope this tightly. Link the GPO only to an OU containing the specific admin workstations, keep those devices on certificate trust deliberately, and document why they are the exception to your cloud-trust standard. And still pursue PAW as the strategic answer - dual enrollment removes the password friction, but it does not isolate the privileged credential from a compromised standard session the way a dedicated PAW does.

References

PowerShell Scripts — Dual Enrollment Readiness

Script for this post is in Daily-Tasks.

Get-DualEnrollmentReadiness.ps1 — read-only: checks the enumeration GPO value, the join state and whether the device looks like certificate trust, and reports whether dual enrollment can work here
View all scripts on GitHub
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

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…
Windows Hello for Business
Windows Hello Multifactor Device Unlock: Require a Trusted…
Trusted signal unlock makes a device open only when the user proves themselves AND the…