C# 如何在运行时获取管理员权限

XvX*_*222 5 c# privileges runtime admin administrator

有人知道如何在运行时获得管理员权限吗?请不要建议这样做:

<requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
</requestedPrivileges>
Run Code Online (Sandbox Code Playgroud)

希望有人知道如何做到这一点。

我的意思是,例如,考虑这种情况:我有一个在没有管理员权限的情况下运行的应用程序,通常不会在您的计算机上进行任何更改。但是,如果您单击某个按钮,该应用程序将请求管理员权限,然后执行一些必要的操作。

bca*_*ter 9

您无法更改当前正在运行的进程的权限级别。您可以启动一个新进程,请求提升权限。Process.Start() 支持标志“runas”。

        using (Process configTool = new Process())
        {
            configTool.StartInfo.FileName = "foo.exe"
            configTool.StartInfo.Arguments = "--bar";
            configTool.StartInfo.Verb = "runas";
            configTool.Start();
            configTool.WaitForExit();
        }
Run Code Online (Sandbox Code Playgroud)

请参阅以编程方式提升进程权限?

您可以将应用程序的功能分离到第二个可执行文件中,或者使用“runas”以提升的权限重新启动应用程序。