首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows 8.1与Windows 10的UAC高程行为差异

Windows 8.1与Windows 10的UAC高程行为差异
EN

Stack Overflow用户
提问于 2015-10-23 22:12:49
回答 1查看 1.8K关注 0票数 1

我们有一个C# Windows客户端应用程序。此应用程序偶尔需要检查来自受信任的内部网站的更新,下载、安装并重新启动自身。

为了使应用程序与用户帐户控制(UAC)兼容,我们在请求最高可用权限的.exe中嵌入了一个清单:

代码语言:javascript
运行
复制
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
      <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
    </requestedPrivileges>
  </security>
</trustInfo>

我们希望标准(非管理员)用户能够运行应用程序,而不被提示提升为管理员。我们给予标准用户对整个应用程序文件夹的完全权限。这意味着用户有权处理软件文件,但这是可以接受的。

在完全启用UAC的情况下,用户已经在Windows 7、Windows 8和Windows8.1上使用此应用程序一段时间了。在这些操作系统上,当我们的应用程序启动时,Windows不会提示用户提升到管理员权限。

我们现在正在Windows 10上测试行为。在Windows 10系统上,在启用完全UAC的情况下,Windows正在提示标准用户提升为管理员。其他的一切都没有改变。.EXE是相同的,嵌入的清单是相同的请求执行级别的highestAvailable

我们已经用C:\Program和C:\Users\Public中的客户端文件对此进行了测试。这两个地点都有相同的行为。

为什么UAC在Windows 10上的提升行为是不同的?以前版本的行为在UAC中是一个bug吗?它应该一直在推动提升吗?

请注意,我们必须保持UAC启用。我知道如何禁用它。

还请注意,我已经测试过将清单更改为requestedExecutionLevel of asInvoker。这并不会提示在Windows 10上提升。

-更新--

我们跟踪了海拔,提示本地用户和域用户之间的差异。这篇MSDN文章说:

在运行应用程序之前,具有附加权限的标准用户(例如. Backup操作符)...will提示凭据的启动行为

我们看到本地标准用户没有被提示要提升,但是本地域用户被提示要提升。域用户对有限用户拥有的唯一权限是域用户角色的成员。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-24 05:33:35

你不明白highestAvailable的意思。这意味着,如果您的帐户是管理组的一部分,则请求完整的管理令牌,但是对于正常的标准用户,不显示UAC对话框,进程与标准令牌一起运行。

如果您的程序需要管理员权限才能工作,那么您需要在清单中使用requireAdministrator。当标准用户启动这样的进程时,将显示over-the-shoulder UAC对话框,其中用户可以输入管理帐户的凭据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33312167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档