以编程方式在cmista中运行cmd.exe作为管理员,c#

我有一个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。

我试过没办法! 我能做什么!

尝试执行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)

试试这个,这对我有用。

 ... using System.Diagnostics; ... ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.Verb = "runas"; startInfo.Arguments = "/env /user:" + "Administrator" + " cmd"; Process.Start(startInfo); ... 

Ashutosh说