To anyone else still struggling with this problem it's more-or-less because you use a PIN to sign in on Windows instead of a password.
For whatever reason your Windows Hello PIN will not work for Service Logon or /runas
etc. In fact, you may only have a Windows Hello PIN!
After many days of struggling with this, here's my solution. Follow these steps in order.
- (Have a password) Open Settings -> Accounts -> Sign-in options. "Password" option likely isn't showing or available. Scroll down to Additional settings and untoggle "For improved security, only allow Windows Hello sign-in for Microsoft accounts on this device". Close and Reopen Settings and go back to the Sign-in options. The password option should now show. Set one if you haven't. If it says
- (Disable password expiration) More on this later and it may or may not be necessary, but I did it during the process and I can see it having an effect. Open Group Policy Editor (gpedit.msc) and go to Computer Configuration -> Windows Settings -> Security Settings -> Account Policies -> Password Policy. On the right pane should list "Maximum password age" likely set to 42. Set it to 0.
- ("Activate" the password) Click the Start Button -> Your User Icon -> And click Sign out (not Lock!). Log back in using your PASSWORD. If it's asking you to log in with your pin, click Sign-in Options under the field and you should see the option to.
Viola - That password should now work for runas, service logon as, etc.
I believe what's going on is Microsoft is trying to go passwordless even on Windows user profiles and it's somewhat shooting themselves in the foot in terms of compatibility. The password would 'expire' in terms of it being used for any authorization and then you only have a PIN left, which is a good thing as a PIN would be easily bruteable. Logging in with the Password enabled instead of the PIN effectively re-activates it and allows it to be used for authorization again.