如何在使用远程桌面连接连接到另一台机器时保存凭据?
背景
我尝试连接到服务器,但远程桌面客户端没有任何已保存的凭据:
为了尝试保存凭证,我选中了选项允许我保存凭证:
然后我启动连接,输入密码,并注意到记住我的凭据选项被选中:
一旦连接到服务器,我确保本地组策略选项
本地计算机策略➞计算机配置➞管理模板➞Windows 组件➞远程桌面服务➞远程桌面连接客户端
- 在客户端计算机上提示输入凭据
- 不允许保存密码
默认允许保存密码,并且默认不提示输入凭据,强制允许保存密码,并且强制不提示输入密码:
我奔跑是gpupdate /force
为了确保强制关闭安全设置正在使用中。
重复上述步骤 4 到 5 次,第 6 次创建屏幕截图一个 stackoverflow 问题。
请注意,远程桌面连接客户端拒绝保存我的密码,注意:
连接时系统会要求您提供凭据
所以问题是:连接机器时如何保存凭据?
尝试了其他方法
正如建议的那样:
我尝试启用“允许使用仅 NTLM 服务器身份验证委派已保存的凭据”在TERMSRV/*
gpedit.msc
客户(例如 Windows 7)机器:
人们提出这个建议却没有意识到它仅适用于 NTLM 身份验证。NTLM 已过时且不安全,不应使用:
NTLM 是一种过时的身份验证协议,存在一些缺陷,可能会危及应用程序和操作系统的安全性。尽管 Kerberos 已经推出多年,但许多应用程序仍然只使用 NTLM。这不必要地降低了应用程序的安全性。
但无论哪种方式,它都没有起作用。
奖金信息
- 尝试了现代
[email protected]
和传统的avatopia.com\ian
用户名格式 - 尝试在域控制器上设置组策略
- Windows 7 64 位专业客户端
- Windows Server 2008 R2 服务器
- Windows Server 2008 服务器
- Windows Server 2012 服务器
- Windows Server 2003 R2 服务器
- 一切来自背景只是为了让它看起来像我“尝试了一些研究努力”;你可以忽略它;包括这一行,它讨论了忽略这一行
附录 A
客户端是 Windows 7,通过 RDP 7.1 连接到 Windows Server 2008 R2,服务器使用自动生成的证书:
客户端已经验证了服务器的身份:
连接到 Windows Server 2008 和 Windows Server 2012(均来自 Windows 7 客户端)时也会发生这种情况。所有计算机都加入到同一个域。
附录 B
rsop.msc
客户端上的策略结果集 ( ) 具有连接时始终提示输入密码设置已禁用:
附录 C
连接到我能找到的每个服务器的结果。当我说连接到任何服务器都会失败时,我错了。2003. 问题仅限于服务器2008,2008 R2, 和2012:
- Windows Server 2000:是*
- Windows Server 2000:是*
- Windows Server 2003:是
- Windows Server 2003 R2:是
- Windows Server 2003 R2:是(域控制器)
- Windows Server 2003 R2:是
- Windows Server 2008:否
- Windows Server 2008:否
- Windows Server 2008 R2:否
- Windows Server 2008 R2:否
- Windows Server 2012:否
- Windows Server 2012:否
*表示将使用已保存的凭据,但必须在 2000 登录屏幕上重新输入密码
额外阅读
- KB281262:如何在 Windows XP 中启用远程桌面自动登录
- 超级用户:远程桌面连接忽略已保存的凭据
- Windows Seven 论坛:Windows 7:远程桌面连接自动登录 - 允许或阻止
- Microsoft.com:在远程桌面连接中保存和更改登录凭据
- Microsoft.com:在远程桌面连接中保存您的登录凭据
- MSDN 远程桌面服务博客:已保存的凭证不起作用
- 堆栈溢出:Windows 7 远程桌面连接保存凭据不起作用[关闭]
- Microsoft 论坛:远程桌面连接未使用已保存的凭据
答案1
我找到了解决方案。它既微妙又明显。
正如问题中提到的,当我修改以下内容时远程桌面连接客户端组策略设置:
- 在客户端计算机上提示输入凭据
- 不允许保存密码
我正在检查它们服务器:
我以为会是服务器这决定了客户是允许的。结果发现这是完全错误的。@mpy 的回答(虽然不正确),这让我找到了解决方案。我不应该查看 RDP 上的 RDP 客户端策略服务器,我需要查看我的 RDP 上的 RDP 客户端策略客户机器:
在我的客户端 Windows 7 机器上,策略如下:
- 不允许保存密码:已启用
- 在客户端计算机上提示输入凭据:已启用
我不知道这些选项是什么时候启用的(我最近没有启用它们)。令人困惑的是,即使
不允许保存密码
启用后,RDP 客户端仍会节省密码;但仅适用于Windows Server 2008以下的服务器。
函数真值表:
Do not allow saved Prompt for creds Works for 2008+ servers Works for 2003 R2- servers
================== ================ ======================= ==========================
Enabled Enabled No Yes
Enabled Not Configured No No
Not Configured Enabled Yes Yes
Not Configured Not Configured Yes Yes
所以有一个窍门。组策略设置如下:
计算机配置\策略\管理模板\Windows 组件\终端服务\远程桌面连接客户端
在客户机器需要配置:
- 不允许保存密码:未配置 (批判的)
- 在客户端计算机上提示输入凭据:未配置
另一个令人困惑的问题是,
- 一个域已启用政策不能覆盖本地已禁用
- 一个域已禁用政策能被本地覆盖已启用政策
这又引出了真值表:
Domain Policy Local Policy Effective Policy
============== ============== ==============================
Not Configured Not Configured Not configured (i.e. disabled)
Not Configured Disabled Disabled
Not Configured Enabled Enabled
Disabled Not Configured Disabled
Disabled Disabled Disabled
Disabled Enabled Disabled (client wins)
Enabled Not Configured Enabled
Enabled Disabled Enabled (domain wins)
Enabled Enabled Enabled
答案2
由于该问题的直接答案已经存在,我将建议一种替代方法。
远程桌面连接管理器(RDCMan)是 Julian Burger 编写的工具,在微软内部使用。它非常轻量且免费,在我看来,它极大地提高了工作效率,尤其是当您维护许多连接时。是的,它也存储密码(在 xml 配置文件中)。
优点:
- 您可以按层次结构组织连接,这些层次结构继承属性(例如凭据、颜色设置、分辨率)。
- 所有配置(包括散列密码)都存储在一个文件中 - 易于在计算机之间移动。
- 轻量、免费、可靠。
缺点:
- 有些人不喜欢非全屏模式下左侧的导航菜单。就我个人而言,我很快就习惯了。
- 它似乎不能很好地处理非标准 DPI 设置。例如,当我在 Windows 显示设置中使用 125% 缩放时,我发现 RDP 连接有点模糊。因此,在某些机器上,我使用微软远程桌面相反。它可以更好地处理这种情况。
答案3
最详细的答案已经存在,由提问者提供。我只想指出,当客户端计算机操作系统是家庭 SKU 时,也可能会发生此问题,因此可能没有本地 GP 编辑器可用,域策略也不起作用。尽管如此,客户端可能会表现得好像设置了始终询问密码的策略(不知道是什么导致了这种默认设置 - 可能是安装了某些程序?)。
然后,手动设置策略注册表设置很有用(MS RDP 客户端会检查它;您可以使用 procmon 之类的工具找到它)。它在这里:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"PromptForCredsOnClient"=dword:00000000
"DisablePasswordSaving"=dword:00000000
答案4
就我而言,问题在于*.rdp
从 Microsoft Azure 下载的文件有以下行:
prompt for credentials:i:1
通常检查“保存凭据”会改变该行,但由于某种原因,它也被标记为“只读”。
取消将其标记为“只读”,并将行更改为
prompt for credentials:i:0
在记事本中解决了这个问题。