gpt4 book ai didi

c# 从 UAC 管理员级别进程降低权限启动进程

转载 作者:太空狗 更新时间:2023-10-29 21:19:09 27 4
gpt4 key购买 nike

我的应用程序存在一个主要问题。我有一个应用程序和更新程序作为单独的 exe 文件。当更新可用时,更新程序进行更新,并在过程完成后启动我的应用程序。主要问题是 - 应用程序安装在程序文件文件夹中,因此更新程序需要 UAC 管理员权限,这没关系,但是当我需要运行我的应用程序更新程序时,需要以普通用户身份运行它,因为如果它以管理员身份运行拖并且 drop 不起作用(不是应用程序问题,UAC 阻止了它)。我尝试了几种不同的解决方案,甚至是这个: How to run NOT elevated in Vista (.NET)

它对我没有帮助 - 我的应用程序以管理员身份运行。

最佳答案

您最好避免从提升的流程开始非提升的流程。这是一个棘手的部分并且容易出错。

这种方法更好:

  1. 您的更新程序最初作为非提升应用程序启动,其 list 具有 asInvoker 级别。
  2. 当它启动时,它会使用 runas 动词以提升的权限重新启动自己,并传递一个命令行参数来指示它。此实例执行更新并返回。
  3. 再次出现非提升的更新程序,并使用与在步骤 1 中启动更新程序的第一个实例相同的非提升的用户 token 启动您的应用程序。

非常简单和健壮。

关于c# 从 UAC 管理员级别进程降低权限启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com