如何在使用管理员权限执行的进程中运行命令?

时间:2011-10-01 11:39:50

标签: c# .net ssl user-permissions makecert

我想创建自签名证书并使用c#程序安装它。 我使用 makecert 制作证书我将其作为管理员运行,并且我在 ProcessStartInfo.argument 中传递命令,但该命令不会执行代码中的问题?

这是我的代码:

 public void Createasnewadmin()
 {

        ProcessStartInfo info = new ProcessStartInfo();

        Process p = new Process();          

        info.FileName = Application.StartupPath+@"\makecert.exe";

        info.UseShellExecute = true;

        info.Verb = "runas"; // Provides Run as Administrator

        info.Arguments = "makecert testCert_admin_check.cer";

        //i just create sample certificate but it doesn't get created
        //The problem is above line the command doesn't get execute 

        p.StartInfo=info;

        p.Start()

  }

请告诉我问题在于它不是以管理员身份执行的?或者要执行的命令没有正确传递?

我认为它正在以管理员身份执行,因为我自己点击“是”按钮以管理员的身份执行,这是由Windows提示

为什么命令没有执行?还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

看一下你的代码,我怀疑你收到错误,因为你的论点不正确。

你排队

info.Arguments = "makecert testCert_admin_check.cer"; 

应该是

info.Arguments = "testCert_admin_check.cer"; 

答案 1 :(得分:0)

我认为您需要提供凭据以在管理模式下调用进程。

  

UserName =“Administrator”,密码=,