2013-10-15 29 views
1

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

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

我安装使用SC这样的服务:

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

当我尝试手动启动,我得到一个提示,说:“本地计算机上的服务名服务启动后又停止了此服务的服务自动停止如果他们没有被其他服务或程序使用。“

除此之外,可执行文件从未实际启动。在processhacker中监视它时,我可以看到服务启动,但它尝试的可执行文件不启动。任何人都可以帮我弄清楚为什么?

正如我前面说我的服务是非常基本的,它是所有试图启动可执行启动时:

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

    protected override void OnStop() 
    { 
    } 
+0

请执行[此问题]的任一答案(http://stackoverflow.com/q/6271252/2065121)帮帮我? –

回答

0

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

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

+0

感谢您的回复。不,我不打扰指定一个,因为可执行文件实际上在system32文件夹中。我只是试着直接指向它,没有好的结果。该文件是一个系统文件,我想知道如果Windows有他们自己的小rootkit像安装程序继续,以防止用户触摸它们。当我试图从一个普通的用户帐户直接从资源管理器执行它时,我收到一个错误消息说没有找到该文件。 – user1632018

0

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

相关问题