利用 tscon 重定向 Windows 会话并实现 RDP 断连后 GUI 任务持久运行

当你在 Windows 10/11 VPS 上运行有界面交互或图像鼠标检测的自动化任务时,如果直接点击远程桌面右上角的“X”关闭连接,系统会停止画面渲染,导致自动化任务假死停摆(即使修改注册表 DisableLockWorkstation 也无法解决)。
你可以通过以下编写批处理(.bat)文件的方法解决该问题:

解决方法

不要直接点击远程桌面窗口的“X”关闭,而是通过一个批处理脚本将当前用户会话抛送回本地控制台,这能在断联的同时让自动化程序继续维持活跃。

1. 新建并编写批处理脚本

在服务器桌面上右键新建一个文本文档,命名为 RDP安全退出.bat(注意确保把原有的 .txt 后缀完整修改为 .bat),随后右键编辑并填入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

rem 倒计时秒数
set seconds=3

:countdown
cls
echo 正在安全断开连接中,倒计时:!seconds! 秒...
timeout /t 1 /nobreak >nul
set /a seconds-=1
if !seconds! gtr 0 goto countdown

echo 正在接管当前会话至控制台...
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
"%windir%\System32\tscon.exe" %%s /dest:console
)

endlocal

2. 正确的使用步骤

  • 步骤 A: 每次准备离开服务器时,千万不要直接点远程桌面窗口右上角的“X”来关闭连接。
  • 步骤 B: 双击运行或者右键选择 “以管理员身份运行” 服务器桌面上的 RDP安全退出.bat
  • 步骤 C: 命令行窗口会在 3 秒倒计时后主动强制掐断你的本地客户端,这表示服务器环境成功被推送到后台,你的自动化程序随即便进入安全运行状态。