程序如何要求管理员权限?

问题描述:

我正在开发一个使用vb.net的应用程序。为了执行某些任务,应用程序需要机器中的管理员权限。如何在程序执行期间要求特权?程序如何要求管理员权限?

切换用户帐户以执行应用程序的一般方法是什么?换句话说,应用程序是否可以在任意用户帐户下运行?

您可以编辑UAC设置(2008年VB),它位于项目设置。寻找这样

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

改革问题高级别= “asInvoker” 到

  1. level="asInvoker"(相同的访问令牌作为父进程)行
  2. level="requireAdministrator(需要完全管理员)
  3. level="highestAvailable"(对当前用户可用的最高特权)

因特网上有几篇关于在Vista中开发提升进程的文章,但本质上提升请求涉及在应用程序清单文件(可能嵌入或并排)中使用提升状态装饰.NET程序集和WIN32可执行文件。

有一个关于你的问题一个很好的博客文章提供的代码你可能需要:

.NET Wrapper for COM Elevation

+0

看起来像博客文章链接破碎! – 2017-05-09 05:56:20

我还没有这样做,但是我相信你去(在VS 2008)项目设置 - >应用程序选项卡,然后单击“查看UAC设置”按钮。这会打开你的app.manifest文件。有一个标签,我认为它包含你正在寻找的选项。该矿已注释掉一些选项应该让你开始:

IN VS 2015年:进入:项目 - >(项目名称)属性... - >应用程序 - >查看Windows设置和发现app.manifest(19行):改变asInvoker到:

  1. “asInvoker”(相同的访问令牌父进程)
  2. “requireAdministrator(需要完全管理员)
  3. ‘highestAvailable’(最高可到当前用户的权限)