7

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

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

4

4 回答 4

8

您可以编辑位于项目设置中的UAC 设置(在 VB 2008 中)。寻找写着的那一行

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

将 level="asInvoker" 更改为

  1. level="asInvoker"(与父进程相同的访问令牌)
  2. level="requireAdministrator(需要完整的管理员)
  3. level="highestAvailable"(当前用户可用的最高权限)
于 2009-05-13T20:36:35.527 回答
3

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

有一篇关于您的问题的优秀博客文章提供了您可能需要的代码:

用于 COM 提升的 .NET 包装器

于 2008-09-18T07:41:14.997 回答
3

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

于 2008-10-09T16:01:05.653 回答
2

在 VS 2015 中:转到:项目 ->(项目名称)属性... -> 应用程序 -> 查看 Windows 设置并在 app.manifest 中找到(第 19 行):并将 asInvoker 更改为:

  1. “asInvoker”(与父进程相同的访问令牌)
  2. "requireAdministrator(需要全权管理员)
  3. “highestAvailable”(当前用户可用的最高权限)
于 2017-07-03T19:22:15.337 回答