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

如何将BluePrism附加到PowerShell进程并实现字符输入?

解决Blue Prism附加外部启动PowerShell进程的问题

我来帮你搞定这个问题,结合你已经用C#启动PowerShell拿到PID,但Application Modeller没法附加、Diagnostics快照提示Not Connected的情况,给你分步梳理解决方案:

一、先排查基础权限与进程状态问题

首先得确保基础环境没问题,否则后续操作都是白搭:

  • 权限要对齐:如果你的C#程序是管理员身份启动的,Blue Prism也必须用管理员权限运行,不然会因为权限隔离看不到目标PowerShell进程。
  • 确认进程存活:打开任务管理器,找到对应PID的powershell.exe,确保它在正常运行,没有被挂起或者隐藏。

二、用Application Modeller手动附加指定PID的进程

Blue Prism其实支持直接通过PID定位进程,按这个步骤来:

  1. 打开Application Modeller,点击顶部的Launch/Attach按钮。
  2. 在弹出的窗口里选Attach to an existing instance,然后点击Browse。
  3. 在进程列表里找对应PID的powershell.exe,如果看不到就勾选Show all processes选项。
  4. 选中进程后点OK,尝试捕获输入控件。如果还是不行,手动配置进程属性:
    • 在Application Modeller的Application Properties面板里,把Process Name设为powershell.exe,Process ID填入你C#获取到的PID值,保存后再尝试附加。

三、解决Diagnostics的"Not Connected"提示

这个问题一般是Blue Prism和目标进程的通信出了问题,试试这些修复手段:

  • 重启相关程序:彻底关闭Blue Prism和PowerShell进程,然后以管理员身份重启Blue Prism,再用C#重新启动PowerShell,立即尝试附加(避免进程状态变化)。
  • 检查Blue Prism服务:打开services.msc,找到Blue Prism Application Manager服务,确保它处于Running状态,要是没启动就手动启动它。
  • 禁用PowerShell快速编辑:右键PowerShell窗口标题栏→属性→取消勾选快速编辑模式,这个模式有时候会导致进程响应异常,重启PowerShell后再试。

四、自动化附加的进阶方案(C#+Blue Prism API)

如果想让整个流程自动化,不用手动操作Application Modeller,可以用Blue Prism的.NET API来实现:

  1. 引用Blue Prism安装目录下的BluePrism.Automate.dll。
  2. 编写代码连接Blue Prism会话,定位应用模型并附加进程:
using BluePrism.Automate;

// 连接本地Blue Prism实例
var bluePrismSession = new Session();
bluePrismSession.Connect("localhost");

// 获取你预先创建好的PowerShell应用模型(替换成你的模型名称)
var psAppModel = bluePrismSession.ApplicationModels.GetByName("PowerShell_Input_Model");

// 设置进程ID并执行附加
psAppModel.Properties["Process ID"].Value = yourPowerShellPID.ToString();
psAppModel.Attach();

// 模拟输入字符(替换成你的控件名称)
var inputControl = psAppModel.Controls.GetByName("PS_Input_Area");
inputControl.SendKeys("Hello from Blue Prism!");

注意:使用API需要确保你的账号有Blue Prism操作权限,且API版本和Blue Prism主程序版本兼容。

五、避坑提醒

  • 位数匹配:64位系统下,如果Blue Prism是32位版本,要启动32位PowerShell(路径是%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe),否则会因为位数不兼容无法识别进程。
  • 给进程留初始化时间:C#启动PowerShell后,不要立刻尝试附加,等1-2秒让进程完全就绪,再执行附加操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:11:58