Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在具有管理员权限的流程中运行命令?_C#_.net_Ssl_User Permissions_Makecert - Fatal编程技术网

C# 如何在具有管理员权限的流程中运行命令?

C# 如何在具有管理员权限的流程中运行命令?,c#,.net,ssl,user-permissions,makecert,C#,.net,Ssl,User Permissions,Makecert,我想创建一个自签名证书,并通过c#program安装它。 我使用makecert生成证书,我以管理员的身份运行它,并在ProcessStartInfo.argument中传递命令,但该命令不执行代码中的问题是什么 这是我的密码: public void Createasnewadmin() { ProcessStartInfo info = new ProcessStartInfo(); Process p = new Process();

我想创建一个自签名证书,并通过c#program安装它。 我使用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提示


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

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

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


看一看你的代码,我怀疑你得到了一个错误,因为你的参数是不正确的

你行吗

info.Arguments = "makecert testCert_admin_check.cer"; 
应该是

info.Arguments = "testCert_admin_check.cer"; 

一些类似于我的东西验证了管理员权限没有问题,因为我确实使用相同的代码运行cmd,它确实以管理员身份正确运行,但是我无法通过我的程序将命令传递给它。谢谢,这是个问题,而不是现在的问题,我想执行两个命令如果是这样的话有可能吗?我尝试了下面的方法,但没有工作。Arguments=“-n\”CN=My\u Root\u CA\u 1\u admin\u try,O=Organization,OU=Org Unit,L=San Diego,S=CA,C=US\”-pe-ss My-sr LocalMachine-sky exchange-m 96-a sha1-len 2048-r My\u Root\u CA\u 1\u admin\u try.cer+“&&certutil.exe-f-addstore Root My\u Root\u CA\u 1\u admin\u try.cer"; 我想运行此命令将证书存储在trusted root?太好了,很高兴能帮您解决问题。我认为你的下一点可能更适合作为另一个问题。但是我可能会创建一个包含一些参数的批处理文件,然后从C#代码执行批处理文件。