在这个从 2017 年讨论到 2022 年的 issue: github.com/microsoft/WinAppDriver/issues/147里面,有说过修改注册表、使用.bat 文件断开远程的方法,但是我试过都没用,不知道有没有大神有其他解决办法?

之前有遇到一个情况是,断开 rdp 后,运行的程序全注销了

用 Parsec + IndirectDisplayDriver 试试? mozz.ie/posts/ultimate-virtual-monitor-solution-indirect-display/

之前用这个的方案 3 是可以
www.cnblogs.com/bangejingting/p/6846480.html

手动ღ( ´・ᴗ・` ),有空试一下

这个我之前也试过,好像没成功

改用 vnc ?

vnc 可以,另外用另一台远程服务器“看着”目标服务器也可以

印象中有个叫 hdmi 诱骗器的东西,可以让机器认为有显示器一直输出画面。然后远程后退出后也能保持画面

我来说个思路,不要在 windows 下面跑 CI/爬虫,直接用 headless 模式在 Linux 下跑即可。

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console)

想换行结果回复了,我用这种 bat 断开远程的方式是可以的
虽然我的是插件自动爬虫,应该都是差不多的.主要是断开远程之后就等于系统被注销了

打了一大段发现 3 楼的文档已经提及了。如果想排查的话,在机器上装个 vnc ,用 vnc 连进去看。
一般远程桌面断开之后,会话依旧是 RDP ,但状态变成断开,VNC 看到的状态是锁屏。
你试试在远程桌面下用 tscon 把进程切换到 console 会话,通过 vnc 观察,如果是正常显示画面,那就没问题,剩下可能是其他原因。

%1 mshta vbscript:CreateObject("Shell.application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
 %windir%\System32\tscon.exe %%s /dest:console
)

net stop NVDisplay.ContainerLocalSystem
net start NVDisplay.ContainerLocalSystem

远程桌面保持激活就行

Windows Server 好像不会这样子。Windows7/8 好像也不会啊。我远程桌面打开的程序。如果断开连接之后再次登录东西都还在。程序也正常运行啊,也没有断开中断。

亲测 windows server 不会这样

创建一个新账户然后 RDP 自己连自己 (127.0.0.2)
github.com/stascorp/rdpwrap/

嗯嗯,可能还是得 server 系统

是不是你 windows 的问题呢。。什么版本的

可以考虑用计划任务来启动,貌似是可以一直后台的吧