我在从系统帐户启动进程时遇到问题。我只是想明确一点,我不是试图在交互式会话下运行它,也不是试图冒充任何帐户。我要做的就是从系统帐户启动一个进程到同一个会话中。我相信 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()
{
}