簡體   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