1

我在从系统帐户启动进程时遇到问题。我只是想明确一点,我不是试图在交互式会话下运行它,也不是试图冒充任何帐户。我要做的就是从系统帐户启动一个进程到同一个会话中。我相信 NTAUTHORITY\SYSTEM 所在的会话是 0 。

我创建了一个简单的 Windows 服务,它基本上只使用 Process.start 来启动可执行文件。该服务是一项系统服务。

我使用 SC 安装了该服务:

sc create "MYSERVICE" binpath= "C:\Projects\MyService\MyService.exe" displayname= "My Awesome Service"

当我尝试手动启动该服务时,我收到一条提示“本地计算机上的 ServiceName 服务已启动然后停止。如果其他服务或程序未使用某些服务,它们会自动停止。”

除此之外,可执行文件从未真正启动过。在 processhacker 中监视它时,我可以看到该服务确实启动了,但它尝试的可执行文件没有。谁能帮我弄清楚为什么?

正如我之前所说,我的服务非常基础,它所做的只是在启动时尝试启动可执行文件:

  protected override void OnStart(string[] args)
    {
        Process.Start("svrexec.exe");
    }

    protected override void OnStop()
    {
    }
4

2 回答 2

0

你 100% 确定它没有运行吗?我试过了,我的运行在系统用户名检查下显示任务管理器中所有用户的进程

于 2013-12-10T16:40:06.937 回答
0

您是否指定了可执行文件的完整路径?系统用户的工作文件夹是 %windir%\System32。

尝试 Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "svrexec.exe"),或设置 Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory

于 2013-10-15T06:54:55.253 回答