【问题标题】:Start a process as a specific user, from a WCF managed service running as LocalSystem从作为 LocalSystem 运行的 WCF 托管服务以特定用户身份启动进程
【发布时间】:2011-01-13 08:10:45
【问题描述】:

当服务作为 LocalSystem 运行时,是否可以从作为 Windows 托管服务托管的 WCF 服务在远程服务器上生成进程?

我需要人们能够在他们自己的帐户环境下在远程服务器上执行操作(基本上就像 PSExec - 这不是一个选项)。

我之前做过一些半心半意的尝试,但是当使用 process.start 时,如果托管 WCF 组件的 Windows 服务作为 LocalSystem 运行,则无法让进程作为特定用户运行。

我知道这可以通过其他方法实现,但我特别想知道上述是否可以实现 - Windows 服务作为 LocalSystem 运行并托管 WCF 服务,然后作为指定用户生成一个进程。

谢谢

米克

【问题讨论】:

  • 关于您尝试使用 Process.Start 时发生了什么的任何细节?
  • 如果我在 process.start 中指定了用户名和密码,那么进程会生成,但会直接死掉。我认为错误消息说它是无效的应用程序。我目前没有任何工作代码,所以我无法给出确切的错误。在投入大量时间之前,我正在尝试确定是否有可能,对于含糊不清的情况深表歉意。

标签: c# wcf process


【解决方案1】:

您可以使用Process.Start 方法,该方法允许您指定运行进程的用户。

【讨论】:

  • 嗨达林。我试过了。当服务作为 Localsystem 运行时,生成的进程会启动,但随后会立即因错误而死亡(我不记得它是什么)。我似乎记得,如果我将服务设置为作为域帐户运行,那么在 process.start 中指定用户和密码可以正常工作。但是,这将需要在许多服务器上将必要的权限应用于域帐户,这将很难让我们的安全人员通过。
  • @Mick,您不需要使用域帐户。只需将此参数留空,它将使用本地计算机帐户。
  • 感谢 Darin,不幸的是,这仍然需要创建本地帐户并获得相关权限,因此希望将 Windows 服务作为 LocalSystem 运行,因为它已经拥有必要的用户权限。
  • 米克,你做到了吗?我们遇到了同样的问题...如果您能分享您的知识,那将非常有用。
猜你喜欢
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多