1

我运行一个(C#)服务,该服务将一些键盘输出到其他 UI 应用程序,就像虚拟键盘一样。

Windows 安全性(更准确地说UIPI)限制了我这样做的服务。

为了绕过 UIPI,我为我的服务创建了一个清单,其中 UIAccess 标志设置为 "true" :

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
      <requestedExecutionLevel level="asInvoker" uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

关于文档,服务必须遵守两个条件才能提升到 UIAccess :

  1. 服务必须经过数字签名
  2. 该服务必须从安全位置运行(管理员只能进行 R/W 访问,例如 C:\Program Files)

我的服务尊重这两个条件。

当我尝试启动我的服务时,我收到以下错误:

错误 740:请求的操作需要提升

我认为我的服务会自动提升并能够使用 UIAccess 运行。我错过了什么?

其他炎症 :

  • 该服务正在运行本地系统帐户
  • 该服务以“asInvoker”执行级别运行
  • 我尝试禁用以下本地策略:“仅提升安装在安全位置的 UIAccess 应用程序”和“仅提升已签名和验证的可执行文件”
4

0 回答 0