
解决 Windows 11 远程桌面每次都需要输入密码
缘起
之前用 Windows 11,别的都好,用多了觉得系统也挺漂亮的。
只是有一个问题一直让我非常困惑,那就是远程桌面连接。因为本人还是有一些 Windows 服务器的,那么上去维护的时候肯定就是远程桌面了。只不过本人为了保证服务器安全用的都是我自己都记不住的那种密码,一直都是依靠系统来保存密码。这一套东西在 Windows 10 上用的一直都好好的,直到那天我把电脑升级到了 Windows 11,然后就发现远程桌面没办法记住密码了,每次都需要输入密码,没办法,灰溜溜的滚回了 Windows 10。
后来嘛就是用上了 MacBook,直接用 Windows App,再也没遇到过这个问题。
直到最近我把之前淘的二手苏菲狗强制升级到 Windows 11 后,又一次遇到了这个问题(死去的回忆突然开始攻击我(╥﹏╥))。这一次我像是开窍了一样,留意了一下错误信息,然后一切都明晰了起来……

好嘛原来又是 Windows Defender 搞得鬼,不过这个 Credential Guard 是个什么鬼?
Windows 下的凭据管理
以下有许多废话,不想看直接拉到文章结尾看解决方法就行。
其实很多人不知道,Windows 是有内置的凭据管理器的。打开控制面板,选择用户账户就能看到了。而且 Windows 11 下没有被删。

当年 IE 就是接入的系统凭据管理器,不得不感叹当时 Windows 各个部件的集成是多么的优秀。
远程桌面连接(mstsc.exe)接入的也是这个东西,所有的密码就放在“Windows 凭据”下。
那么这么一个普普通通的凭据管理器出了什么问题呢?这个 Credential Guard 为什么会阻止我们调用存储的凭据呢?
凭据是怎么泄漏的
尽管有着安全启动、TPM 等等的加持,随随便便拿一个 PE 获取密码肯定是行不通的,但是就算如此,这个系统中也留下了一个漏洞。这个漏洞就是,当电脑解锁的时候,这些凭据是可以直接被调用的!
……
我知道,听着确实很离谱,我人在电脑前面,难道还会有什么泄漏风险吗?
当然有,毕竟没有人可以保证真的是“你”坐在电脑前进行操作。特别是在企业环境中,想象一下,攻击者只需要通过某种方式(通常来讲是社会工程),接触到一台没有退出登录,且存储有管理员密码的电脑,就可以轻而易举攻破整个企业的安全系统!
Credential Guard 的作用
所以 Credential Guard 出现了。
不过首先,我们发现前面提到了“企业环境”,所以这个 Credential Guard 其实只是在企业版/教育版上默认启用,家用版本上默认是没有的。(到头来还是瞎装企业版害了自己。不要瞎装企业版,老老实实用你的专业版去……)
此外虽然老一点的 Windows 版本也有这个功能,但是默认启用也要到 Windows 11.(难怪我会产生装了 Windows 11 就不行的错觉……)
Credential Guard 的作用很简单,在启用了 Credential Guard 的情况下,直接在各类软件中选择保存密码不会真的保存密码,而是在系统中创建一个空壳,这样虽然软件识别的是已保存密码,但是最终使用的时候,还是需要重新输入。并且这些空壳子在系统重启的时候就会被打扫干净。
这样的话就算有个社工屁颠屁颠的做到了电脑前面,他也只能在看到使用“已保存密码”也需要重新输入的时候,陷入深深的自我怀疑,然后开始思考人生……(然后被保安轰出去)
于是就有了上面那张图看到的效果(^_^)
这里要批评一下微软,新版本似乎修复了这个问题,会明确显示是 Credential Guard 在发挥(gao)作用(gui),以前我记得就写个你的凭据不工作,好嘛,也难怪我以前没看见这个提示
可是我只是一个想用企业版装逼的小白( ・᷄ὢ・᷅ )
所以有没有什么办法,让 Windows 11(企业版,家庭版不要来凑热闹)也可以正常保存密码呢?
解决方法
答案当然是有的,而且还不止一种。
关闭 Credential Guard
首先当然是打开本地组策略编辑器。
然后转到计算机配置 > 管理模板 > 系统 > Device Guard。

把“打开基于虚拟化的安全”这一项关闭。(注意不是去 Windows 安全中心里关闭内存完整性。关闭这个东西没有用)

接下来重启电脑使策略生效。
前面提到 Credential Guard 保存的都是空盒子,因此关闭 Credential Guard 后,还需要重新输入一次密码。这一次输入完密码就可以正常保存了,想验证的话也很简单,把远程桌面的窗口叉掉再重新打开,如果没有再弹一次输入密码的框框就是 OK 了~
手动添加
其实 Credential Guard 打开的时候也不是没有办法保存密码,用命令依然是可以保存的。
首先我们以管理员身份运行命令提示符。
接下来运行:
cmdkey /generic:TERMSRV/<目标> /user:<用户名> /pass:<密码>其中:
- 目标就是 IP 地址或者域名,例如 TERMSRV/10.0.0.1。
- 用户名和密码不解释。
然后就可以在 Credential Guard 开启的状态下将凭据插入到管理器当中了。
结语
没事不要乱安装企业版!老老实实用你的家庭版去(╯‵□′)╯︵┻━┻

