我正在尝试使用此代码
作为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();
}
但是我总是收到同样的错误消息“登录失败:未知用户名或密码错误”。调用该函数的用户是本地管理员,应该能够启动具有本地系统特权的进程。我也试过不同的组合,但没有运气。
我将不胜感激任何帮助。 谢谢
答案 0 :(得分:3)
不幸的是,我认为你不能这么简单。
Process.Start()调用的底层API接受用户名和密码,但由于SYSTEM用户不是常规用户且没有密码,我不相信您可以将其用于此API。
您必须使用类似psexec的内容(当然,您可以从Process.Start()
拨打电话)。
答案 1 :(得分:0)
我有一段时间遇到了一些困难。最后管理它。你可能遗失的是一些许可或其他许可。查看我的previous question/answer.