C# 在vista、C中以管理员身份以编程方式运行cmd.exe#

C# 在vista、C中以管理员身份以编程方式运行cmd.exe#,c#,windows-vista,process,cmd,administrator,C#,Windows Vista,Process,Cmd,Administrator,我有一个VisualStudio安装和部署项目。我在其中添加了一个.cmd脚本。脚本需要管理员权限才能运行。当用户单击setup.exe时,UAC会提示用户输入管理员权限。所以我假设setup.exe中创建和调用的所有进程都将以管理员身份运行。因此,我让安装程序调用我的控制台应用程序,其中包含以下代码 ProcessStartInfo p1 = new ProcessStartInfo(); p1.UseShellExecute = true; p1.Verb = "runas"; p1.Fil

我有一个VisualStudio安装和部署项目。我在其中添加了一个.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
命令:


(我不认为你需要一个明确的UseShellExecute)

试试这个,这个对我很有用

...

using System.Diagnostics;

...

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

...

Ashutosh

我想冒充管理员。就像它在setup.exe中自动发生一样。这一个要求密码!当您尝试模拟管理员时,是否预期会出现不同的结果?否则,任何执行代码的人都可以是管理员而不知道密码。你不觉得这是一个重大的安全风险吗?我将重新措辞这个问题。请看一看并评论一下。你是说UAC提示?哦……)我不太清楚。@lucas,你有没有可能提供一个链接或文章来更详细地解释这一点???非常感谢你分享你的知识。上面的代码适用于我,但我想从cmd执行“uwfmgr volume protect C:”这个命令。我如何使用ur代码来执行这个命令
...

using System.Diagnostics;

...

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

...