【问题标题】:How to run a process as an administrator from Win32 \C++如何从 Win32\C++ 以管理员身份运行进程
【发布时间】:2011-06-07 06:35:32
【问题描述】:

我有一个用 c# 编写的控制台应用程序,它将文件下载到程序文件中。所以当然它需要以管理员身份运行。该程序是从几乎可以肯定不是以管理员身份运行的 Win32 C++ 应用程序调用的
我有什么选择。我怎样才能让它在 UAC 和非 UAC 启用的盒子上工作(我不知道在每种情况下是否需要单独的解决方案)
哦,控制台应用程序在 .NET 2.0 中

【问题讨论】:

    标签: winapi


    【解决方案1】:

    在具有 UAC 的计算机上,您需要包含 manifest 资源以指定您希望进程以管理员身份运行。

    在没有 UAC 的机器上,您只需指示您的用户他们需要以管理员组中的用户身份运行它。几乎所有 XP 的用户(您最常遇到的没有 UAC 的版本)都在管理员组中,因此您不会遇到很多问题。

    【讨论】:

      【解决方案2】:

      我从未尝试过,但这可能可以使用

      CreateProcessAsUser 函数。

      【讨论】:

      • 为了调用它,您需要一个有权访问 Program Files 文件夹的用户令牌。你要去哪里弄到这样的令牌?
      • 您可以使用文档中引用的 LogonUser Function(msdn.microsoft.com/en-us/library/aa378184%28v=vs.85%29.aspx) 创建令牌
      • 是的,您可以创建这样的令牌。但是你需要知道用户名和密码!!
      • 您不会运行使用 CreateProcessAsUser 和以明文形式发送管理员密码的服务器!
      • 也许是你的现实。不是我的现实。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2015-04-24
      相关资源
      最近更新 更多