C # как запустить процесс (с аргументами) через администратора с повышенными привилегиями - PullRequest
1 голос
/ 14 января 2011
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " +"processNeedToRun")
{
    RedirectStandardError = true,
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true,
    Verb ="runas"
};

Я использую приведенный выше код для запуска процесса через cmd в C #.

Однако проблема в следующем:

  1. "processNeedToRun" нуждается в аргументах при запуске.
  2. Даже если я установил Verb = "runas", Windows 7 все равно выдает диалоговое окно.

Можно ли выполнить все требования?

1 Ответ

4 голосов
/ 14 января 2011

Если процесс, который запускает processNeedToRun, не повышен, то нет способа избежать диалога повышения прав Это будет дырой в безопасности. Так что вам просто придется жить с подсказкой повышения прав.

Добавление аргументов в processNeedToRun не проблема, однако. Вы можете просто добавить их к аргументам, которые вы передаете ProcessStartInfo:

var procStartInfo = new ProcessStartInfo("cmd", "/c processNeedToRun arg1 arg2");
...