当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《以编程方式在cmista中运行cmd.exe作为adminstrator,c#》经验,为你挑选了2个好方法。

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

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



1> Lucas Jones..:

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


当您尝试模仿管理员时,您是否期望获得不同的结果?否则执行代码的任何人都可以是管理员而不知道密码.这不会对您造成重大安全风险吗?

2> 小智..:

试试这个,这对我有用.

...

using System.Diagnostics;

...

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

...

Ashutosh说

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有