编程方式运行cmd.exe的以管理员身份在Vista中,C#
-
21-08-2019 - |
题
我有一个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运行作为administrator.I'm运行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说
不隶属于 StackOverflow