桌面桥允许提升受限功能无法正常工作,UAC 后出现错误“请求的操作需要提升”

问题描述

我已经从 https://stefanwick.com/2018/10/01/app-elevation-samples-part-1/

下载并编译了应用程序

链接到 github https://github.com/StefanWickDev/AllowElevation-Samples/tree/master/Hello%20Elevated%20World

我做了两个版本,只改变了 app.manifest 中的 requestsExecutionLevel

  1. <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
  2. <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

在标准用户帐户(非管理员)uac 设置为认(最大)上运行这两个应用

#1 的问题 是它不会触发任何 UAC,但我相信它应该?当在任务管理器中检查时,它显示 Elevated No

#2 问题 出现运行 UAC 框时,输入管理员密码时,错误消息显示“请求的操作需要提升” 并且应用程序根本没有启动。

看起来 MSTF 方面有什么东西坏了,还是我遗漏了什么?

Package.manifest 中的能力部分

  <Capabilities>
    <Capability Name="internetClient" />
    <rescap:Capability Name="runFullTrust" />
    <rescap:Capability Name="allowElevation" />
  </Capabilities>

解决方法

功能 allowElevation 允许 Microsoft 合作伙伴和企业创建的应用保留需要在启动时或应用生命周期内自动提升的现有桌面功能。

当您使用 allowElevation 功能并将 level 属性的值设置为 highestAvailable 时,应用将以当前用户帐户中可用的最高级别运行。如果当前帐户是管理员,则应用程序可能会询问更高级别。 UAC 将被触发,当在任务管理器中检查时,它显示 Elevated 是。如果当前账户是标准账户,最高级别为标准用户级别,因此不会触发UAC,在任务管理器中勾选时显示Elevated No。

当您使用 allowElevation 功能并将 level 属性的值设置为 requireAdministrator 时,应用程序需要在管理员下运行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...