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

断开笔记本连接时Windows VM中Python与任务计划程序运行Alteryx工作流失败如何解决

问题根因

你遇到的报错和异常本质是两个原因叠加:

  1. PyAutoGUI依赖活动的可视化桌面会话才能正常模拟键盘鼠标操作。当你断开RDP远程连接时,Windows会自动关闭当前用户的活动桌面会话,没有可交互的GUI界面,PyAutoGUI的模拟操作会直接失效。
  2. 断开会话后系统的虚拟显示坐标会发生异常,PyAutoGUI默认的故障保护机制检测到鼠标被移到屏幕角落,就触发了FailSafeException终止运行。

临时修复方案(适配现有脚本逻辑)

如果不想改现有脚本的整体逻辑,可以按下面三步调整:

  1. 调整PyAutoGUI配置,在脚本导入模块后立刻新增两行配置:
import pyautogui as pg
pg.FAILSAFE = False # 关闭角落触发的故障保护
pg.FAILSAFE_POINTS = [] # 清空故障保护触发点
import os
import time

# 后面保持原有代码不变
time.sleep(10)
os.startfile("C:\\Users\\my_name\\Desktop\\Python Test Workflow.yxmd")
time.sleep(45) #build in enough time for Alteryx to open the workflow
pg.hotkey('ctrl', 'r')
time.sleep(10)
  1. 调整Windows任务计划程序配置:
    • 打开任务属性,切换到「常规」标签页,勾选只在用户登录时运行
    • 切换到「条件」标签页,取消勾选只有在计算机使用交流电源时才启动此任务
    • 切换到「设置」标签页,勾选唤醒计算机运行此任务
  2. 修改断开远程的方式:不要直接点RDP窗口右上角的叉关闭连接,新建一个disconnect.bat文件,内容如下,每次要断开远程时双击运行即可,这个命令会把当前远程会话转接到本地控制台,不会销毁桌面会话:
tscon %sessionname% /dest:console

长期稳定方案(推荐)

完全放弃GUI模拟的逻辑,用Alteryx自带的命令行运行引擎执行工作流,不需要任何界面交互,稳定性高很多,直接替换原有Python脚本即可:

import subprocess

# 按实际安装路径修改Alteryx引擎路径和工作流路径
alteryx_engine_path = r"C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe"
workflow_path = r"C:\Users\my_name\Desktop\Python Test Workflow.yxmd"

# 直接调用引擎运行工作流
run_result = subprocess.run([alteryx_engine_path, workflow_path], capture_output=True, text=True)
# 打印运行日志可用于排查问题
print("运行输出:", run_result.stdout)
if run_result.stderr:
    print("运行错误:", run_result.stderr)

该方案不需要调整任务计划程序的额外配置,也不受远程连接断开的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:39:02