2011-10-01 85 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

相關問題