0

我想创建一个自签名证书并通过 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 提示的

为什么命令不执行?还有其他方法吗?

4

2 回答 2

1

查看您的代码,我怀疑您遇到错误是因为您的参数不正确。

你行

info.Arguments = "makecert testCert_admin_check.cer"; 

应该

info.Arguments = "testCert_admin_check.cer"; 
于 2011-10-01T12:26:40.553 回答
0

我相信您需要提供凭据才能在管理模式下调用进程。

用户名 = “管理员”,密码 = ,

于 2011-10-01T12:03:16.983 回答