“下次登录时更改密码”要求如何与使用网络级别身份验证的 RDP 一起使用?

NRe*_*ngh 7 password-management remote-desktop-services windows-server-2008-r2 network-level-auth

我们有一台安装了“远程桌面服务”功能且没有 Active Directory 域的 Windows 服务器 (2008 R2)。远程桌面设置为"Allow connections only from computers running Remote Desktop with Network Level Authentication (more secure)". 这意味着在显示远程屏幕之前,将在“Windows 安全:输入您的凭据”窗口中对连接进行身份验证。

此服务器上安装的仅有的两个角色服务是 RD 会话主机和许可。

用户属性窗口

在此服务器上本地用户的属性中选中“用户必须在下次登录时更改密码”复选框时,在尝试使用上次有效的凭据进行连接后,客户端计算机上将显示以下内容:

发生错误

在其他一些使用 RDP 进行管理员访问的服务器上(但没有安装远程桌面服务角色),行为是不同的——会话开始,用户在远程屏幕上收到更改密码提示。我需要做什么才能在远程桌面服务服务器上复制此行为?

Rya*_*ies 9

我要假设你不能这样做。执行 NLA(网络级身份验证)后,用户无法远程登录并更改其密码。

您可以在远程桌面服务器上使用 tsconfig.msc,右键单击 RDP-Tcp 连接并选择属性,然后将安全层下拉菜单更改为“RDP 安全层”,但随后您会丢失 NLA。不幸的是,这两个设置是相互排斥的。

如果您必须拥有 NLA,那么您需要为用户建立一种替代方法来更改过期密码,例如通过 Outlook Anywhere、RDWeb Access 或加入域的工作站的物理控制台等。

这是一种常见的 22 种情况,因为按照设计,NLA 甚至不会分配为您创建远程桌面会话所需的系统资源,直到您的凭据被验证为有效之后。但是您必须连接到完整会话、创建桌面、为您生成 LogonUI.exe 等,才能更改密码。但是您无法进行会话,因为您的密码已过期。我相信,允许这样做会在 NLA 中打开一个漏洞,用户可以绕过 NLA 并获得会话,即使他们没有一个好的(即未过期的)密码。

http://support.microsoft.com/kb/2648402说:

在 CredSSP 的协议规范中,没有提到在 NLA 运行时更改用户密码的能力。因此,可以将观察到的行为视为“按设计”。

CredSSP 是启用 NLA 的底层技术,它不支持密码更改。因此,MSTSC 中未启用密码更改。其他支持 NLA 的 RD 客户端应该无法更改用户的密码。