影刀RPA锁屏失败排查:从错误码看Windows会话机制

双11前一周,我负责的店铺数据同步脚本又挂了。

凌晨2点,运营在钉钉群里@我:"竞品价格没更新,我们定价全错了。"

我爬起来连服务器,屏幕黑的。解锁,开影刀日志------停在"点击千牛登录"这一步,报错:获取窗口失败,错误码 0x80070490

这个月第7次。每次都要手动重跑,每次都要被运营@。

这次我决定把它彻底搞清楚。


一、0x80070490 到底是什么?

先别急着骂影刀。这个错误码不是影刀的问题,是Windows的会话机制。

当你锁屏或断开远程桌面时,系统会把当前交互式桌面会话标记为 Disconnected。这时候UI Automation框架(影刀底层依赖)能访问的元素树被截断了------不是"看不见",是"树被剪枝了"。

我翻了Windows事件查看器,锁屏前后的对比很明显:

复制代码
# 锁屏前:会话状态 Active
query user
# USERNAME  SESSIONNAME  ID  STATE   IDLE TIME  LOGON TIME
# admin     rdp-tcp#0    1   Active  none       4/15/2025 1:00 AM

# 锁屏后:状态变成 Disc
query user
# admin     rdp-tcp#0    1   Disc    none       4/15/2025 1:00 AM

影刀日志更直接:

复制代码
[2025-04-15 02:00:15] 正在定位元素:千牛登录按钮
[2025-04-15 02:00:16] UIAutomation.GetElement failed: 0x80070490
[2025-04-15 02:00:16] 获取窗口失败,流程终止

0x80070490 = ERROR_NOT_FOUND。不是元素没了,是会话降级后元素树不完整,影刀扫不到完整的DOM。

这是Windows的设计,不是bug。但影刀作为SaaS化RPA,架构上强依赖交互式桌面渲染,锁屏后自然跑不动。


二、我试过的 workaround,全跪

影刀社区给的方案我挨个试了:

方案1:改注册表禁止锁屏

复制代码
# 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
# 新建 DWORD:InactivityTimeoutSecs = 0

结果:组策略一刷新就失效,安全科还找上门。

方案2:虚拟桌面

影刀社区推荐用虚拟桌面绕过锁屏。但远程断开后,虚拟桌面同样被挂起,治标不治本。

方案3:Python脚本定时解锁

复制代码
import ctypes
# 注意:这是锁屏,不是解锁,社区有人贴错代码
ctypes.windll.user32.LockWorkStation()

更坑的是,远程会话断开后,任何解锁指令都发不到目标会话。这个方案从根上就不成立。

三个方案全死。我开始怀疑:是不是我对"无人值守RPA"的理解从一开始就是错的?


三、断网:另一个被忽略的坑

如果说锁屏是"能 workaround 但麻烦",那断网就是"直接判死刑"。

影刀启动时需要连官方服务器做身份校验。我们服务器在内网,外网出口不稳定。凌晨2点的任务,经常卡在启动界面:

复制代码
[2025-04-15 02:00:01] 影刀客户端启动
[2025-04-15 02:00:05] 正在连接影刀服务器...
[2025-04-15 02:00:35] 连接超时 (Error: 10060)
[2025-04-15 02:00:35] 任务终止

35分钟才发现挂了。竞品价格抓了一半,网络抖了一下,影刀要求重新登录。但我在睡觉,没人去输密码。

更恶心的是,影刀即使已经登录过,每隔一段时间也会强制重新校验身份。这意味着流程跑了一半,网络一抖,下一个步骤可能就触发重新登录,然后卡死。

复制代码
[2025-04-15 02:15:23] 正在执行:抓取竞品价格
[2025-04-15 02:15:45] 检测到网络波动,正在重新连接影刀服务器...
[2025-04-15 02:16:15] 身份校验失败,请重新登录
[2025-04-15 02:16:15] 流程异常终止

这种"已经跑了一半突然断"的体验,比"一开始就没跑起来"更折磨人。 你以为它成功了,实际上是个半成品。


四、电商场景的特殊性

做电商自动化的应该都懂,我们的RPA流程有几个特点:

  • 时间窗口极窄:大促期间0点、2点、6点必须准时跑,错过就是真金白银

  • 数据源分散:淘宝、京东、拼多多、抖音,每个平台都要抓

  • 服务器资源紧张:一台机器跑十几个店铺,屏幕不能一直亮着

  • 网络环境复杂:有些店铺用专线,有些用普通宽带,稳定性参差不齐

影刀的设计逻辑是"联网+有人值守",这在电商场景下是根本性冲突

  • 你要7×24跑,但影刀需要屏幕常亮

  • 你要内网稳定,但影刀需要连外网校验

  • 你要多店铺并行,但影刀每个实例都要独立登录

我当时的架构:

复制代码
服务器A(影刀)→ 抓淘宝店铺数据 → 锁屏后挂
服务器B(影刀)→ 抓京东竞品价格 → 断网后挂
服务器C(影刀)→ 同步库存到ERP → 凌晨2点准时挂

三台机器,三种死法,同一个根因。


五、我后来怎么解决的?

折腾到第三天,同事扔给我一个蓝印RPA的安装包,说不用联网、锁屏也能跑。我半信半疑装上了。

试了一周,锁屏和断网的问题确实没了。但我也踩了蓝印RPA的坑:

坑1:元素识别确实糙

影刀能自动识别的这个按钮,蓝印RPA死活点不到:

复制代码
<!-- 影刀自动识别 -->
<button class="btn-primary ant-btn css-1q7njf8">提交</button>

最后手动写了XPath:

复制代码
# 蓝印内置Python扩展
from selenium.webdriver.common.by import By
submit_btn = driver.find_element(
    By.XPATH,
    "//button[contains(@class, 'btn-primary') and text()='提交']"
)

坑2:社区几乎搜不到答案

影刀社区一搜"锁屏"几百条帖子,蓝印RPA遇到问题基本只能啃文档。我花了一个下午才搞清楚定时任务配置格式。

坑3:Chrome驱动要手动更新

Chrome自动升级后,浏览器自动化组件直接报错。影刀是自动适配的,蓝印需要手动下对应版本的chromedriver。

坑4:多店铺并行调度弱

影刀企业版有完善的任务调度平台,蓝印RPA目前更偏向单机使用。我三台服务器的任务调度,最后是自己写了个Python脚本搭的简易调度层:

复制代码
import schedule
import subprocess

def run_taobao_sync():
    subprocess.run(["blueprint.exe", "--task=taobao_sync"])

def run_jd_price():
    subprocess.run(["blueprint.exe", "--task=jd_price"])

schedule.every().day.at("02:00").do(run_taobao_sync)
schedule.every().day.at("02:30").do(run_jd_price)

while True:
    schedule.run_pending()
    time.sleep(60)

但说实话,这些坑和"凌晨2点被运营@十几次"比起来,根本不算事


六、我现在的工作流

场景 我用什么 为什么
开发调试、复杂页面(抖音后台) 影刀 元素识别精细,调试爽,社区能搜到答案
生产环境7×24定时任务 蓝印RPA 锁屏/断网不挂,内网离线能跑
大促多店铺并行 蓝印RPA + 自建调度 打包成EXE,复制到多台机器
打包给运营用 蓝印RPA 双击EXE就能跑,不用教他们装客户端

影刀做开发,蓝印RPA跑生产。 不是蓝印RPA多好,是它在无人值守场景下确实不挂。


七、给电商同行的建议

  1. 如果只做白天有人值守的自动化,影刀完全够用,别折腾

  2. 如果必须7×24跑,先测试锁屏场景------别等双11了才发现问题

  3. 内网环境提前验证联网依赖------影刀的SaaS架构不适合纯离线场景

  4. 大促前一定要做压力测试------网络波动+高并发+定时任务,三重debuff

相关推荐
侠客工坊18 小时前
移动端 RPA 的架构重构:基于侠客工坊多模态视觉大模型的自动化调度系统压测复盘
人工智能·智能手机·重构·架构·rpa·数字员工·侠客工坊
brucelee18618 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
卷Java1 天前
GPTQ vs AWQ vs GGUF:模型量化工具横向测评
开发语言·windows·python
x-cmd1 天前
[260429] x-cmd v0.9.1:一键开启 DeepSeek-V4-Pro Max 模式 + 1M 上下文;顺手重构了 uuid 模块
windows·重构·uuid·claude·curl·x-cmd·deepseek-v4-pro
今夕资源网1 天前
Windows 上安装 Claude Code并且接入DeepSeekV4-Pro的Max模式和激活1M上下文
windows
HLJ洛神千羽1 天前
电脑右下角显示【周几或星期几】和【上下午】方法
windows
ITHAOGE151 天前
下载 | Windows Server 2025官方原版ISO映像!(4月更新、标准版、数据中心版、26100.32690)
服务器·windows·科技·微软·电脑
专注VB编程开发20年1 天前
Windows API 所有老式结构体4字节对齐,但是64位VBA,Twinbasic弄成了8字节对齐,大BUG
windows·bug
东篱把酒黄昏1 天前
wsl和Windows混合开发高级配置详细指导
windows