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

标签 c# windows-vista process cmd administrator

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

关于c# - 以编程方式在 vista 中以管理员身份运行 cmd.exe,C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667381/

相关文章:

c# - 需要 C# 代码使用 DataReader 从 Microsoft Access Attachment 数据类型读取多个附件

c# - 如何相互合并 DLL

c# - 在 Xamarin Android 应用程序中下载并打开 pdf?

c - 使用 CryptUnprotectData 解密 WEP wlan 配置文件 key

windows-7 - 在 UAC 保护区中创建文件夹

visual-studio - VS2008,IIS7 Web项目,非管理员。什么时候?

c# - 如何处理 SqlException

ios - 其他可终止应用列表

java - 当前 java 进程的错误/输出流

unix - xv6 KERNBASE 限制进程内存