远程执行Sikuli自动化脚本报错:Mouse: not useable (blocked)
解决远程执行Sikuli脚本时的Mouse: not useable (blocked)错误
问题原因
你使用Invoke-Command通过WinRM远程执行脚本时,WinRM创建的是后台非交互式会话,这类会话没有权限访问目标服务器的桌面输入设备(鼠标、键盘),也无法关联到你当前打开的RDP交互式会话,导致Sikuli无法控制输入设备或识别屏幕内容。
解决方案
1. 改用PsExec执行脚本
PsExec可以直接在目标服务器的交互式桌面会话中运行命令,解决权限和会话关联问题:
# 根据实际情况调整参数 psexec \\ServerB -i 1 -u 你的用户名 -p 你的密码 cmd /c "D: && cd ssedesktopautomation && mvn test -Dtest='AexeoTest#aexeoreporter_test'"
参数说明:
-i 1:指定在ID为1的交互式会话中执行(可在Server B上用quser命令查看当前会话ID)-u/-p:若需指定登录用户则添加,当前用户有权限访问Server B时可省略cmd /c:用于串联执行目录切换和Maven命令
2. 避免RDP会话暂停渲染
Windows会在RDP窗口最小化时暂停远程会话的桌面渲染,导致Sikuli无法捕获屏幕:
- 保持RDP窗口处于非最小化状态(可缩小窗口,但不要点击最小化按钮)
- 若必须最小化,修改注册表禁用该行为:
- 在Server B上打开注册表编辑器(
regedit) - 导航到
HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client - 新建DWORD值
RemoteDesktop_SuppressWhenMinimized,设置值为1 - 重启RDP会话生效
- 在Server B上打开注册表编辑器(
3. 验证会话状态
在Server B上执行quser命令,确认你的RDP会话处于Active状态,且会话ID与PsExec命令中-i参数指定的ID一致。
内容的提问来源于stack exchange,提问作者Rakesh
相关产品推荐
相关产品推荐

