我们有一个安装了“远程桌面服务”function的Windows服务器(2008 R2),没有Active Directory域。 远程桌面设置为"Allow connections only from computers running Remote Desktop with Network Level Authentication (more secure)" 。 这意味着在显示远程屏幕之前,连接在“Windows安全:input您的凭据”窗口中进行身份validation。
RD服务器上安装的唯一两个angular色服务是RD会话主机和授权。

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

在其他一些使用RDP进行pipe理访问的服务器上(但没有安装远程桌面服务angular色),行为是不同的 – 会话开始,用户在远程屏幕上被提供更改密码提示。 我需要做什么才能在远程桌面服务服务器上复制此行为?
我打算假定你不能这样做。 使用NLA(networking级身份validation)强制执行,用户无法远程login并更改其密码。
您可以在远程桌面服务器上使用tsconfig.msc,右键单击RDP-Tcp连接并select“属性”,然后将安全层下拉菜单更改为“RDP安全层”,但是这样会丢失NLA。 不幸的是,这两个设置是互斥的。
如果您必须具有NLA,则需要为用户build立一个备用方法,以便更改过期的密码,例如通过Outlook Anywhere或RDWeb Access或join域的工作站的物理控制台等。
这是一种catch-22的情况,因为在devise上,NLA甚至不会为你创build一个远程桌面会话分配必要的系统资源,直到你的证书被validation为有效之后。 但是你将不得不连接到一个完整的会话,创build一个桌面,为您产生LogonUI.exe等,以便更改您的密码。 但是由于密码已过期,您无法进行会话。 考虑到这一点,我相信在NLA中会出现一个漏洞,用户可以绕过NLA并获得一个会话,尽pipe他们没有一个好的(即不是过期的)密码。
http://support.microsoft.com/kb/2648402说:
在CredSSP的协议规范中,没有提及在NLA运行时更改用户密码的能力。 因此,观察到的行为可以被认为是“通过devise”。
CredSSP是启用NLA的基础技术,并且不支持密码更改。 因此,在MSTSC中不启用密码更改。 其他支持NLA的RD客户端应该无法更改用户的密码。