6

我有一个视觉工作室设置和部署项目。我在其中添加了一个 .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。

我试过没有用!我能做些什么?

4

2 回答 2

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)

于 2009-03-20T18:32:32.503 回答
6

试试这个,这对我有用。

...

using System.Diagnostics;

...

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

...

阿舒托什

于 2009-05-18T15:03:45.507 回答