Windows Server 远程桌面断开导致锁屏问题及解决方案
一、问题描述
在日常使用 Windows Server 进行管理时,我发现每次断开远程桌面连接(Remote Desktop Connection)后,服务器的桌面会立即进入锁屏状态。对于后台服务来说,锁屏不会造成影响,但如果某些程序需要依赖桌面环境正常运行,锁屏将导致这些程序中断,服务也会因此停止。
为了保证程序正常运行,就需要在断开远程桌面连接后,避免服务器进入锁屏状态。如果能一直保持远程桌面连接不断开,服务器就不会锁屏,程序也能正常运行。但是真要这样了,也没必要将程序放在服务器上,放自己电脑上不香吗…
二、进行了几种尝试,均未能解决问题
1、“自己远程自己”
根据网上的一个博主的方法,我尝试了“自己远程自己”的方法:在服务器上创建一个新用户,使用主用户远程再连接到这个新用户,然后在新用户会话中运行程序。理论上,这样可以保持“自己远程自己”的那个会话不断开,从而避免锁屏。然而,经过测试,这种方法虽然有一定效果,但对于我的需求显然并不适用,并没有解决问题,依然会整体冻结。
2、 修改组策略与注册表
我还尝试通过修改组策略和注册表来解决这个问题,例如设置远程桌面断开后的会话时间、禁用锁屏等。尽管这些方法在理论上可行,但实际操作中仍然无法完全防止锁屏,问题依旧存在。
3、别的远程工具连接
之前记得用向日葵远程后,关闭向日葵的窗口是可以不锁屏的,不知道为啥现在不行, 尝试了几次都不行,放弃!
4、电源设置
查看了控制面板里面的电源设置,本身就是从不的状态,所以这个方法也就无从说起了。。。陷入了僵局!!!
三、最终解决方案:使用 tscon
命令连接控制台
经过多次尝试,最终找到的有效解决方案是使用 tscon
命令将当前远程桌面会话连接到服务器的控制台。这个方法简单且有效,可以在断开远程桌面连接后,保证程序持续运行而不受锁屏影响。
操作步骤
- 查询当前会话 ID
在断开远程桌面连接之前,打开命令提示符(cmd),输入以下命令:
query session
作用:查看当前会话的 ID;
你会看到类似如下的输出:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console Administrator 0 Conn wdcon
rdp-tcp#0 Administrator 1 Disc rdpwd
找到你当前远程会话的 ID(通常是非 0 的值),然后使用该 ID 运行tscon 命令。例如,如果会话 ID 是 1(一般是:rdp-tcp#0 这个),你可以运行以下命令:
tscon 1 /dest:console
这将把会话 1 重新连接到控制台,从而防止锁屏。
运行后,将会提示你
恭喜你,解决问题了,此时会话就由控制台接管了,也就没有锁屏了!