Как я могу передать больше чем один параметр командной строки через c#

Я должен передать больше чем один параметр командной строки через c# для процесса под названием handle.exe: http://www.google.com.mt/search?sourceid=chrome&ie=UTF-8&q=handle.exe

Во-первых, я должен выполнить исполняемый файл через ПРАВА АДМИНИСТРАТОРА. Это сообщение помогло мне достигнуть просто что: программно выполните cmd.exe как adminstrator в перспективе, c#

Но затем прибывает, следующая проблема вызова фактических аргументов строки такой как "-p исследует"

Как я могу указать параметры командной строки вместе, или возможно последовательно?

Текущий код следующие:

        Process p = new Process();
        ProcessStartInfo processStartInfo = new ProcessStartInfo("filePath");
        processStartInfo.CreateNoWindow = true;
        processStartInfo.UseShellExecute = false;
        processStartInfo.RedirectStandardOutput = true;
        processStartInfo.RedirectStandardInput = true;
        processStartInfo.Verb = "runas";
        processStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd";

        p.StartInfo = processStartInfo;
        p.Start();
        string output = p.StandardOutput.ReadToEnd();
        p.WaitForExit();
        Console.WriteLine(output);      

Спасибо

7
задан Community 23 May 2017 в 12:09
поделиться

3 ответа

Вы можете запустить процесс, используя команду UseShellExecute и передайте имя пользователя и пароль

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.useshellexecute%28v=VS.100%29.aspx

http : //msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.username%28v=VS.100%29.aspx

Хотя вы будете где-то хранить имя пользователя и пароль.

0
ответ дан 7 December 2019 в 20:34
поделиться

Если вы пытаетесь запустить процесс с повышенными разрешениями, может быть лучший способ, чем вызов runas.

0
ответ дан 7 December 2019 в 20:34
поделиться

Я считаю, что ответ, который вы ищете, прямо взят из документации по командам Runas .

runas /user:user@domain.microsoft.com "notepad my_file.txt" 

Похоже, что последний аргумент команды runas - это команда, которая выполняется вместе с любыми аргументами. Ключ состоит в том, чтобы использовать кавычки для группировки фактического исполняемого файла команды с его аргументами, чтобы значения не рассматривались как отдельные аргументы для команды runas, а вместо этого выдавались как отдельная команда.

Итак, в вашем примере вы можете сделать следующее.

processStartInfo.Arguments = "/env /user:" + "Administrator" + " \"cmd -p explore\"";
1
ответ дан 7 December 2019 в 20:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: