Как запустить команду в процессе, который выполняется с правами администратора? - PullRequest
0 голосов
/ 01 октября 2011

Я хочу создать самоподписанный сертификат и установить его с помощью программы 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

Почемукоманда не выполняется?есть ли другой способ?

Ответы [ 2 ]

1 голос
/ 01 октября 2011

Взглянув на ваш код, я подозреваю, что вы получаете ошибку, потому что ваши аргументы неверны.

Ваша линия

info.Arguments = "makecert testCert_admin_check.cer"; 

должно быть

info.Arguments = "testCert_admin_check.cer"; 
0 голосов
/ 01 октября 2011

Я считаю, что вам нужно предоставить учетные данные для запуска процесса в режиме администратора.

UserName = "Администратор", Пароль =,

...