Search code examples
windowsregistrywindows-hello

How to programatically find if Windows Hello Facial Recognition is enabled


I'm seeking some advice on how to programmatically determine if Windows Hello Face Recognition is enabled.

I initially thought this could be done easily via the registry. However, I haven't found the correct registry key to specifically check if Face Recognition is enabled.

I've checked the following registry entries, but they don't seem to change when enabling or disabling Face Recognition:

  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\FaceLogonEnrolledUsers

  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\FaceLogon

I also came across some workarounds, such as using the last credential provider to see if the face credential provider was used in the last login, but this doesn't fully meet my needs.

Does anyone have any suggestions or know of a different method to achieve this. In my apps I am using C# but I am mostly looking on how to determine this with registries.

Your help would be greatly appreciated. Thank you!


Solution

  • You should be able to identify it via this registry key:

    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WinBio\AccountInfo\SID 
    

    And DWORD values of the property EnrolledFactors:

    • 2: Face
    • 8: Finger
    • 10: Face + finger