1Remote / 1Remote

One Remote Access Manager to Rule Them All

Home Page:https://1remote.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

希望增强断开远程桌面的时候,不关闭远程UI的功能。

skyformat99 opened this issue · comments

自动化测试的时候,会使用各种python脚本操作鼠标,键盘等等,进行测试工作;
一般会通过rdp登录远程服务器,在服务器上运行 python脚本测试。

这个时候,如果直接断开 1remote,则远端的python脚本不会正确执行了。

原因就是:
https://learn.microsoft.com/zh-cn/azure/devops/pipelines/test/ui-testing-considerations?view=azure-devops&tabs=mstest

如果使用远程桌面访问以自动登录方式运行代理的计算机,则直接断开连接远程桌面会导致计算机锁定,并且在此代理上运行的任何 UI 测试都可能会失败。 为避免故障,请在远程计算机上使用 tscon 命令从远程桌面断开连接。

或者,若要自动查找当前会话 ID,请创建一个包含以下代码的批处理文件:

batch

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

也可以参考这个方法:
https://blog.csdn.net/qq_51038274/article/details/122223669

总之,希望作者可以集成这个功能,断开的时候,仍然让服务器可以正常执行UI相关的python脚本等功能。

这种使用场景,是不是用VNC会比较好? VNC 断开后不会锁定UI。

没必要为了特例需求在RDP上实现这种workaround.

这种使用场景,是不是用VNC会比较好? VNC 断开后不会锁定UI。

没必要为了特例需求在RDP上实现这种workaround.

不是吧,这个需求非常普遍啊。
大家远程不得需要干活么? 干活搞自动测试很多啊。。。。

这种使用场景,是不是用VNC会比较好? VNC 断开后不会锁定UI。

没必要为了特例需求在RDP上实现这种workaround.

不是吧,这个需求非常普遍啊。
大家远程不得需要干活么? 干活搞自动测试很多啊。。。。

我见到的自动测试,不是用RDP的,而是用一种群控工具,所有虚拟机的鼠标键盘全部同步,本地脚本控制鼠标移动点击一次等于所有虚拟机都点击了一次。还有自动分析工具,自动截图,聚类分析所有虚拟机的UI截图,高亮标记显示效果离群的,加入报警日志保留。

真没听说哪家用远程桌面来做UI测试的。

我见到的自动测试,不是用RDP的,而是用一种群控工具,所有虚拟机的鼠标键盘全部同步,本地脚本控制鼠标移动点击一次等于所有虚拟机都点击了一次。还有自动分析工具,自动截图,聚类分析所有虚拟机的UI截图,高亮标记显示效果离群的,加入报警日志保留。

真没听说哪家用远程桌面来做UI测试的。

做个选项也行吧?
有的人需要这个,有的人不需要这个
有用就行

首先这个功能看上去就没几个人需要(至少项目启动4年了,你是第一个提的)

其次

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

这个代码看上去会把所有 mstsc 都关闭,无法控制单独关闭某一个。

首先这个功能看上去就没几个人需要(至少项目启动4年了,你是第一个提的)

其次

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

这个代码看上去会把所有 mstsc 都关闭,无法控制单独关闭某一个。

这个是在目标机器上运行的,把目标机器上的各远程关闭。
不会关闭本软件。

作为选项,总归有用。要不然微软也不会特别发文章提这个方法。

或者你告诉我怎么改,在哪个代码里面改,

可能是我对这个使用场景实在不太理解吧。

如果你想自己加的话,可以在这里改,把 colse 改成运行脚本就行了。

https://github.com/1Remote/1Remote/blob/main/Ui/Service/SessionControlService.cs#L322-L346