UI 和浏览器自动化操作相关的 UIPI 问题

本文提供有关解决由用户界面隐私隔离(UIPI)引起的问题的指南,这是 Windows 中的安全功能,该功能可能会阻止 UI 或浏览器自动化作成功执行。 UIPI 会阻止在不同完整性级别运行的进程之间的某些交互,这可能会干扰自动化工具或脚本。 由于这些问题可能由于多个潜在原因而发生,因此我们建议查看列出的每个原因,以确保系统设置正确配置,以便成功实现自动化。

症状

执行 UI 或浏览器自动化的作可能会失败,并显示类似于以下错误消息:

System.Exception:某些模拟输入命令未成功发送。 发生这种情况的最常见原因是 Windows 的安全功能,包括用户界面隐私隔离(UIPI)。 应用程序只能将命令发送到权限级别相同或较低的应用程序。 同样,某些命令仅限于辅助功能/UIAutomation 应用程序。 有关详细信息,请参阅项目主页和代码示例。

原因 1:执行期间桌面被锁定

解决方案:解锁桌面以允许自动化过程继续。

原因 2:执行期间打开 UAC 对话框

解决方案:确保自动化期间不会显示用户帐户控制(UAC)对话框。 如有必要,请暂时调整 UAC 设置:

  1. 打开控制面板。
  2. 导航到 “系统和安全>更改用户帐户控制”设置
  3. 将滑块暂时调整为较低的设置,以防止在自动化期间出现 UAC 中断。
  4. 完成自动化过程后还原原始设置。

原因 3:在执行过程中将 RDP 窗口最小化

解决方案:修改系统注册表以防止出现最小化的远程桌面协议 (RDP) 会话的问题。

重要

本部分、方法或任务包含说明如何修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表

  1. 关闭活动的远程桌面会话。

  2. Win+R,键入 regedit,然后按 Enter 打开注册表编辑器。

  3. 导航到以下键:

    HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal Server Client

  4. 在右侧面板中右键单击,然后选择 “新建>DWORD”(32 位)值

  5. RemoteDesktop_SuppressWhenMinimized命名新的注册表项。

  6. 双击该条目以打开 “编辑 DWORD”(32 位)“值 ”窗口。

  7. “值数据 ”字段设置为 2

  8. 选择 “确定” 以保存更改并关闭注册表编辑器。

原因 4:正在自动执行的应用程序在提升模式下运行

解决方案:确保自动执行的应用程序未使用提升的权限运行。 如果应用程序设置为以管理员身份运行,请调整其执行设置:

  1. 右键单击应用程序快捷方式,然后选择“ 属性”。
  2. 转到 “兼容性 ”选项卡。
  3. 清除 “以管理员身份运行此程序 ”选项。
  4. 选择“确定”以保存更改。

原因 5:已启用桌面屏幕保护程序

解决方案:禁用屏幕保护程序以防止在自动化期间中断:

  1. 打开控制面板。
  2. 导航到 外观和个性化>更改屏幕保护程序
  3. “屏幕保护程序 ”选项设置为 “无”。
  4. 选择应用>,确定

原因 6:Windows Server 管理器在登录时自动启动,触发 UAC

解决方案:禁用服务器管理器的自动启动功能以防止 UAC 提示:

  1. 打开服务器管理器。
  2. 转到 “管理>服务器管理器属性”。
  3. 选中“ 不要在登录时自动启动服务器管理器 ”复选框。
  4. 选择“确定”以保存更改。

原因 7:Windows 更新或系统配置更改

解决方案:查看最近的 Windows 更新或系统更改,并在必要时恢复它们以解决问题。

详细信息

  • 对于 Web 自动化作(如网页 中的单击链接网页上填充文本字段),请确保在作参数中禁用物理交互选项。

    • 在网页上填充文本字段使用物理击键选项禁用填充文本
    • 在网页上单击链接:禁用 “发送物理单击” 选项。
  • 对于 UI 自动化,请为符合条件的 UI 自动化作和 UI 元素启用 模拟作 参数。