如何防止Azure远程VM自动注销会话?
Azure VM远程会话自动注销问题解决办法
检查Azure平台层面的闲置策略
登录Azure门户找到目标VM,进入操作 > 自动关机,确认是否启用了自动关机功能,若启用直接关闭;如果VM属于规模集,同时检查规模集的自动缩放或关机规则,避免平台层面触发注销。调整用户配置组策略
打开gpedit.msc,导航到用户配置 > 管理模板 > Windows组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制:- 将“设置已断开连接的会话的时间限制”设为「已禁用」或「从不」
- 将“设置活动但空闲的远程桌面服务会话的时间限制”设为「已禁用」或「从不」
- 将“设置远程桌面服务会话的时间限制”设为「已禁用」或「从不」
补充注册表关键项配置
打开regedit.exe:- 定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp,确认MaxDisconnectTime、MaxIdleTime、MaxSessionTime均设为十进制0 - 定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,修改或新建字符串值AutoLogonCount为0(若需自动登录可补充设置DefaultUserName和DefaultPassword,注意账户安全)
- 定位到
切换服务运行账户
打开services.msc,找到需持续运行的服务:- 右键进入属性 > 登录选项卡,选择「本地系统账户」,按需勾选「允许服务与桌面交互」,重启服务后,服务将以系统身份运行,不受用户会话注销影响
临时会话保持脚本(可选)
创建批处理脚本模拟用户活动,避免会话被标记为闲置:@echo off :loop powershell -Command "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('{SCROLLLOCK}'); Start-Sleep -Seconds 600" goto loop将脚本保存为
KeepSessionAlive.bat,放入用户启动文件夹(C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup),实现登录后自动运行安装系统更新补丁
部分旧版本Windows Server存在会话超时bug,安装最新累积更新和安全补丁,修复潜在系统问题
内容的提问来源于stack exchange,提问作者O P
相关产品推荐
相关产品推荐

