我有一个visual studio设置和部署项目。我在其中添加了一个.cmd脚本。该脚本需要管理员权限才能运行。当用户单击setup.exe时,UAC会提示用户输入管理员权限。所以我假设在setup.exe中创建和调用的所有进程都将以管理员身份运行。所以我在设置调用我的控制台应用程序,其中包含以下代码。
ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);
因此它应该在管理员空间下运行。
我想通过c#进程类作为管理员运行cmd.exe。我正在运行windows vista。
我试过了 没用!我该怎么办?
答案 0 :(得分:10)
尝试执行runas
命令:
...
using System.Diagnostics;
...
string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
p1.FileName = "runas";
p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);
...
(我认为你不需要一个明确的UseShellExecute)
答案 1 :(得分:6)
试试这个,这对我有用。
...
using System.Diagnostics;
...
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);
...
Ashutosh说