我正在从 Windows Vista 桌面连接到运行 Windows Server 2003 的服务器。我正在使用远程桌面,并在远程服务器上运行一些运行时间很长的进程。我的问题是,远程桌面会在一段时间后注销我的会话并终止所有正在运行的进程,而无需我输入任何信息。这意味着我需要坐在电脑前不时地摇动鼠标,而不是出去享受几个小时的灿烂阳光。
有人知道我该如何禁用此行为吗?我认为它可以在某处配置。
答案1
使用组策略(最佳实践)打开组策略。
在计算机配置、管理模板、Windows 组件、终端服务、会话中,启用要配置的设置。有关详细信息,请参阅策略说明文本。
或者
使用终端服务配置打开终端服务配置。
在控制台树中,单击“连接”。
在详细信息窗格中,右键单击要修改超时设置的连接,然后单击“属性”。
在“会话”选项卡的“结束断开连接的会话”上方,选中“覆盖用户设置”复选框。这允许您配置连接的超时设置。
根据需要配置以下超时设置:
在“结束断开的会话”中,选择断开的会话在服务器上保留的最长时间。达到时间限制后,断开的会话将结束。会话结束时,它将从服务器上永久删除。选择“永不”可允许断开的会话无限期地保留在服务器上。
在活动会话限制中,选择用户会话在服务器上保持活动状态的最大时间。达到时间限制后,用户将断开会话连接或会话结束。会话结束时,会话将从服务器中永久删除。选择永不以允许会话无限期继续。
在“空闲会话限制”中,选择空闲会话(无客户端活动的会话)在服务器上保留的最长时间。达到时间限制后,用户将断开与会话的连接,或会话结束。会话结束时,它将从服务器上永久删除。选择“永不”可允许空闲会话无限期地保留在服务器上。
答案2
我遇到了同样的问题,但由于权限受限,无法访问组策略或注册表。
然而我发现另一种解决方案它使用 Windows Script Host 运行一段 JScript,Scroll Lock每五分钟切换一次,持续一小时。
这是脚本。只需使用.js
扩展名保存它,然后使用“Microsoft Windows Based Script Host”运行它即可。
var WshShell = WScript.CreateObject("WScript.Shell");
for (var i = 0; i < 12; i++) { // Loop 12 times
WshShell.SendKeys('{SCROLLLOCK}');
WshShell.SendKeys('{SCROLLLOCK}'); // Toggle Scroll Lock
WScript.Sleep(300000); // Wait 5 minutes
}
如果你想改变按下的键,请查看此链接,并将参数替换SendKeys
为另一个字符。
同样的解决方案,在 PowerShell 中:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$allowCloseAfter = (Get-Date).ToUniversalTime().AddHours(24)
while ($allowCloseAfter -gt (Get-Date).ToUniversalTime()) {
[System.Windows.Forms.SendKeys]::SendWait("{SCROLLLOCK}")
[System.Windows.Forms.SendKeys]::SendWait("{SCROLLLOCK}")
Write-Host '.' -NoNewline
Start-Sleep -Seconds 300
}
答案3
对于 Windows 7/Windows 10/Windows Server 2012 及更高版本:
- 按Windows+R并输入管理控制台
- 浏览左侧的树视图计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/会话时间限制
- 根据需要调整四个设置(我相信你想调整设置断开连接的会话的时间限制和达到时间限制时终止会话)