C# 如何在具有管理员权限的流程中运行命令?
我想创建一个自签名证书,并通过c#program安装它。 我使用makecert生成证书,我以管理员的身份运行它,并在ProcessStartInfo.argument中传递命令,但该命令不执行代码中的问题是什么 这是我的密码: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();
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#代码执行批处理文件。