2011-10-01 100 views
0

我想创建自签名证书并使用通过c#程序进行安装。 我用makecert使证书我运行它管理员我在ProcessStartInfo.argument传递命令,但该命令不执行什么是在代码中的问题?如何在使用管理权限执行的进程中运行命令?

这里是我的代码:

public void Createasnewadmin() 
{ 

     ProcessStartInfo info = new ProcessStartInfo(); 

     Process p = new Process();   

     info.FileName = [email protected]"\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() 

    } 

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

,我认为它是作为管理员执行,因为我自己点击Yes按钮执行为由

为什么不命令执行窗口

提示管理员?有没有其他方法?

+1

一些什么类似http://stackoverflow.com/questions/7610727/to-run-cmd-as-administrator-along-with - 命令 – purvang

回答

1

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

你行

info.Arguments = "makecert testCert_admin_check.cer"; 

应该

info.Arguments = "testCert_admin_check.cer"; 
+0

嘿谢谢这是问题比它现在工作,我想执行两个命令是宝如果是,那么该怎么办?我尝试了下面的方法,但没有工作info.Arguments =“-n \”CN = My_Root_CA_1_admin_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_Root_CA_1_admin_try.cer”+“&& certutil.exe -f -addstore Root My_Root_CA_1_admin_try.cer”;我想运行此命令将证书存储在受信任的根目录中? – purvang

+0

太好了,很高兴将您排序。我认为你的下一点可能更适合作为另一个问题。但我可能会创建一个批处理文件,它需要几个参数,然后从C#代码执行批处理文件。 –

0

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

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

+0

我没有验证它有管理员权限没有问题,因为我运行cmd使用相同的代码,它确实以管理员身份正常运行,但后来我无法通过我的程序将命令传递给它 – purvang

相关问题