C # начать процесс как другой пользователь с правами администратора - PullRequest
0 голосов
/ 16 октября 2018

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

Я пытался

var process = new ProcessStartInfo 
{
    FileName = "path",
    UserName = "userName",
    Domain = "myDomain",
    Password = mySecritPassword,
    UseShellExecute = false,
    Verb = "runas",
    RedirectStandardError = true,
    RedirectStandardInput = true,
    RedirectStandardOutput = true
 };

 Process.Start(process);

Но мой процесс запускается без прав администратора

Есть что-то, что я забыл?

1 Ответ

0 голосов
/ 16 октября 2018

Вы должны сделать UseShellExecute истинным.Так что это должно работать:

var process = new ProcessStartInfo 
{
    FileName = "path",
    UserName = "userName",
    Domain = "myDomain",
    Password = mySecritPassword,
    UseShellExecute = true,
    Verb = "runas",
    RedirectStandardError = true,
    RedirectStandardInput = true,
    RedirectStandardOutput = true
 };

 Process.Start(process);

Вам необходимо принять приглашение UAC для получения прав администратора, и по какой-то причине приглашение UAC отображается только при использовании ShellExecute.Дополнительную информацию (но не очень) можно найти в этой статье: Научите свои приложения хорошо играть с контролем учетных записей Windows Vista .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...