.net 如何为其中一个内置用户帐户使用Process.Start()?

.net 如何为其中一个内置用户帐户使用Process.Start()?,.net,process.start,.net,Process.start,我想知道是否有办法启动作为内置服务帐户之一运行的进程?我想启动托管代码的进程。我想使用其中一个内置服务帐户(LocalService、NetworkService、LocalSystem)。我认为您可以使用它作为中介,在LocalSystem(又名System)帐户下启动一个进程: 在系统帐户中以交互方式运行Regedit以查看SAM和安全密钥的内容: psexec-i-d-sc:\windows\regedit.exe 但我想不出在其他账户下启动的方法。我能想到的唯一间接方法是让一个服务已经在

我想知道是否有办法启动作为内置服务帐户之一运行的进程?我想启动托管代码的进程。我想使用其中一个内置服务帐户(LocalService、NetworkService、LocalSystem)。

我认为您可以使用它作为中介,在LocalSystem(又名System)帐户下启动一个进程:

在系统帐户中以交互方式运行Regedit以查看SAM和安全密钥的内容:

psexec-i-d-sc:\windows\regedit.exe

但我想不出在其他账户下启动的方法。我能想到的唯一间接方法是让一个服务已经在适当的帐户下运行,然后连接到它(通过远程处理、管道、WCF,任何适合您的方式),并要求它启动新流程


当然,在这种情况下,新进程无法与桌面交互,因此如果您需要,您仍然会运气不佳。

我认为您只能在另一个服务的上下文中执行此操作(或者只运行LocalSystem就足够了);在这种情况下,可以使用LogonUser()获取令牌。或者,您可以尝试查找在所需帐户下运行的现有服务,并复制其令牌(假设您具有相应的访问权限)