繁体   English   中英

从系统帐户下的服务启动过程

[英]Launching process from service under system account

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

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

尝试使用Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“ svrexec.exe”),或设置Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM