Запустите процесс как использование LocalSystem ProcessStartInfo

Я пытаюсь запустить процесс как учетную запись LocalSystem с помощью этого кода

    ProcessStartInfo _startInfo = new ProcessStartInfo(commandName);
_startInfo.UseShellExecute = false;
_startInfo.UserName = @"NT AUTHORITY\SYSTEM";
_startInfo.CreateNoWindow = true;
_startInfo.Arguments = argument;
_startInfo.RedirectStandardOutput = true;

using (Process _p = Process.Start(_startInfo)) {
  _retVal = _p.StandardOutput.ReadToEnd();
  _p.WaitForExit();
}

Но я получаю всегда то же сообщение об ошибке, говоря "Отказ входа в систему: имя неизвестного пользователя или неверный пароль". Пользователь, вызывающий функцию, является локальным администратором и должен смочь запустить процесс с локального системного полномочия. Я также попробовал другую комбинацию, но никакую удачу.

Я ценил бы любую справку.Спасибо

7
задан auhorn 23 April 2010 в 08:31
поделиться

2 ответа

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

Базовый API, который вызывает Process.Start (), принимает имя пользователя и пароль, но поскольку пользователь SYSTEM не является обычным пользователем и не имеет пароля, я не думаю, что вы можете использовать его с этим API.

Вам нужно будет использовать что-то вроде psexec (которое, конечно, можно вызвать из Process.Start () ).

3
ответ дан 7 December 2019 в 16:40
поделиться

У меня были некоторые трудности с этим некоторое время назад. В конце концов это удалось. Что вам, вероятно, не хватает, так это того или иного разрешения. См. Мой предыдущий вопрос / ответ.

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