【问题标题】:Start a process as LocalSystem using ProcessStartInfo使用 ProcessStartInfo 作为 LocalSystem 启动进程
【发布时间】:2010-04-23 08:31:30
【问题描述】:

我正在尝试使用此代码作为 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();
}

但我总是收到相同的错误消息,说“登录失败:未知用户名或密码错误”。调用该函数的用户是本地管理员,应该能够以本地系统权限启动进程。我也尝试了不同的组合,但没有运气。

如果有任何帮助,我将不胜感激。 谢谢

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    不幸的是,我认为你不能这么简单地做到这一点。

    Process.Start() 调用的底层 API 接受用户名和密码,但由于 SYSTEM 用户不是普通用户并且没有密码,我不相信您可以将它与此 API 一起使用。

    您必须使用psexec 之类的名称(当然,您可以从Process.Start() 拨打电话)。

    【讨论】:

    • 这是我将使用的版本 :-) 谢谢!
    【解决方案2】:

    前段时间我在这方面遇到了一些困难。最后管理它。您可能缺少的是一些许可或其他。见我的previous question/answer.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多