关于Windows:程序如何要求管理员特权?

关于Windows:程序如何要求管理员特权?

How does a program ask for administrator privileges?

我正在VB.NET中的一个小型应用程序上工作。 该程序需要管理员特权才能执行某些任务。 如果程序执行,有没有办法在执行过程中要求管理员特权?

更改运行应用程序的用户帐户的一般方法是什么?


您可以在应用程序的清单文件中指定此名称。

签出此链接,此链接以及此链接。


有多种方法可根据您的需要而定。 UAC的应用程序开发人员要求中提供了一些详细信息。

  • 包括一个UAC清单,该清单会导致您的程序在启动时需要管理员权限。
  • 使用建议的方法之一调用高程以耗尽过程。最好的方法之一是使用COM标高和CoCreateInstanceAsAdmin来调用以管理员身份运行的COM对象上的方法。在VB.Net中工作可能很棘手。我虽然在C ++中可以正常工作
  • 另一个好的方法是将需要管理员特权的代码部分隔离到使用UAC清单要求管理员特权的应用程序中。在这种情况下,您的主应用无需以管理员身份运行。当您需要管理员特权时,您将调用外部应用程序。

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Try
                        Dim procInfo As New ProcessStartInfo()
                        procInfo.UseShellExecute = True
                        procInfo.FileName = 'Filename here
                        procInfo.WorkingDirectory =""
                        procInfo.Verb ="runas"
                        Process.Start(procInfo)
                    Catch ex As Exception
                        MsgBox(ex.Message.ToString(), vbCritical)
                    End Try
                End If

    最简单的方法是单击"项目"选项卡->添加Windows窗体-> .XML文件->将其命名为(程序名称).manifest->将此代码粘贴到此链接中(感谢JDOConal)->然后在右侧的解决方案资源管理器框中右键单击您的项目名称,然后单击属性->在第一个选项卡上,选择清单,然后选择创建的.manifest文件-> build = done!


    推荐阅读