
有沒有辦法在 Windows 上使用(或任何其他工具)啟動服務並將其工作目錄設定為與(預設目錄)sc
不同的目錄?C:\Windows\system32
我知道我可以在服務的源代碼中指定這一點,但我正在尋找一種不涉及修改服務原始碼的解決方案。
答案1
服務從稱為服務控制管理器的應用程式啟動。該應用程式位於系統目錄中%WinDir%\System32
,這是其當前的工作目錄。
當系統服務啟動時,它預設繼承服務控制管理員的所有屬性以及服務定義中指定的參數。
不幸的是,目前工作目錄不是這些參數之一,正如您在 ChangeServiceConfigA函數。
如果您希望變更服務的目前工作目錄,則需要從服務本身內部執行此操作。