如何从C#代码运行作为管理员的exe?

时间:2016-08-11 14:45:34

标签: c#

当我从命令提示符运行dism /Online /Disable-Feature:Microsoft-Hyper-V-All命令时,它工作正常。

但我想用C#代码做同样的事情。它不起作用,Process存在错误代码11.

Process proc = new Process();
proc.StartInfo.FileName = "dism.exe";
proc.StartInfo.Arguments = "/Online /Disable-Feature:Microsoft-Hyper-V-All";
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
int exitCode = proc.ExitCode;

基本上我想从C#代码(使用UAC)运行给定的命令,因为它与命令提示符一起使用。

2 个答案:

答案 0 :(得分:1)

你不能。也就是说,作为程序员,您无法决定您的代码是否以管理权限运行。但是,您可以通知用户您的代码需要管理权限,然后要求获得这些权限。怎么做covered here

答案 1 :(得分:1)

试试这个方法,

您想要修改嵌入程序中的清单。这适用于Visual Studio 2008及更高版本:Project + Add New Item,选择" Application Manifest File"。将元素更改为:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
相关问题