You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Linux通过RDP实现Windows服务器GUI应用自动化启动方案问询

解决方案:从Linux触发Windows桌面会话中的PyAutoGUI脚本

优先Java方案:Windows本地HTTP服务触发

实现步骤:

  1. 编写Java HTTP服务
    用Spring Boot快速搭建轻量HTTP服务,暴露触发接口。示例代码:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import java.io.IOException;
    
    @SpringBootApplication
    @RestController
    public class TriggerService {
    
        public static void main(String[] args) {
            SpringApplication.run(TriggerService.class, args);
        }
    
        @GetMapping("/run-pyautogui")
        public String runPyAutoGui() {
            try {
                // 替换为你的PyAutoGUI脚本路径
                Runtime.getRuntime().exec("python C:\\scripts\\auto_gui_task.py");
                return "Script triggered successfully";
            } catch (IOException e) {
                e.printStackTrace();
                return "Failed to trigger script: " + e.getMessage();
            }
        }
    }
    

    打包为可执行jar包(通过mvn package完成)。

  2. 配置Windows端服务运行在桌面会话
    系统服务默认运行在无桌面的会话0,无法满足PyAutoGUI的依赖需求,需设置为用户登录后自动启动:

    • 方法1:将jar的启动快捷方式放入用户启动文件夹:C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    • 方法2:创建Windows任务计划,触发条件设为「用户登录」,操作设为启动jar(命令:java -jar C:\apps\trigger-service.jar),确保任务运行在当前用户会话,若勾选「不管用户是否登录都要运行」,需同时指定用户并勾选「使用最高权限运行」。
  3. Linux端触发
    在Linux shell脚本中添加调用命令:

    curl http://<Windows服务器IP>:8080/run-pyautogui
    

    若需安全验证,可在接口中添加简单密钥校验,防止未授权调用。

其他替代方案

方案1:Windows任务计划+SMB共享触发

  • 在Windows创建任务计划,触发条件设为「特定文件被创建时」,操作是运行PyAutoGUI脚本。
  • Linux脚本通过SMB协议向Windows共享目录上传触发文件(如trigger_flag.txt),触发任务计划执行脚本。
  • 注意:需配置SMB共享权限,确保Linux用户拥有写入权限。

方案2:PsExec工具(需注意会话问题)

  • 从Linux端通过psexec(可借助wine或配合SMB调用Windows端工具),指定在用户桌面会话中运行脚本:
    psexec \\<WindowsIP> -u <用户名> -p <密码> -i <会话ID> python C:\scripts\auto_gui_task.py
    
    会话ID可通过Windows的query session命令获取,需确保目标会话为有桌面的活跃会话。

内容的提问来源于stack exchange,提问作者22Fonzie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 21:22:07