我的组织正在运行terminal服务器场,以便为用户提供特定的应用程序。 该设置由一个AD域控制器和两台运行远程桌面服务的terminal服务器组成。 所有服务器都运行Windows Server 2008 R2 Standard。
用户在我们的组织之外,因此客户端configuration不在我们的范围之内。 我们只给他们提供一个RDP连接文件和一个存储在AD中的用户名。 在RDP文件中,我们configuration了"Start the following program on connection" = C:\path\to\batchscript.bat 。 当用户连接时,批处理脚本会执行一些清理和configuration工作,然后启动实际的应用程序。 用户完成他的工作,然后closures应用程序。 当应用程序closures时,用户正在注销,并且RDP会话结束。
这个设置工作正常,直到第一个用户升级到Windows 10.显然,在Windows 10中,从mstsc.exe中删除选项"Start the following program on connection" ,留下terminal服务器的桌面而不是启动我们的批处理脚本。
为了防止这种情况,我设置了以下GPO: User Configuration \ Admin Templates \ System \ Logon \ Run these programs at logon = C:\path\to\batchscript.bat 。 据我了解,这应该覆盖客户端的"Start the following program on connection"设置。 实际上,批处理脚本运行并启动应用程序。 一切行为都如预期的那样,除了当应用程序closures时用户不会注销,而是留下完全空的桌面屏幕。
显然,GPO "Run these programs at logon"不对应于mstsc.exe设置"Start the following program on connection" 。
这两者有什么区别? 是否有另一个GPO与mstsc.exe设置完全相同?
到RDS会话的每个新连接不一定是新login。 用户通常会重新连接到现有的会话。
您可以通过configuration会话在断开连接的状态下经过一定时间之后注销来closures,但这会产生很多后果,具体取决于您尝试使用RDS完成的操作。