有没有办法在 Windows 上使用(或任何其他工具)启动服务并将其工作目录设置为与(默认目录)sc
不同的目录?C:\Windows\system32
我知道我可以在服务的源代码中指定这一点,但我正在寻找一种不涉及修改服务源代码的解决方案。
答案1
服务由名为“服务控制管理器”的应用程序启动。此应用程序位于系统目录中%WinDir%\System32
,这是其当前工作目录。
当系统服务启动时,它默认继承服务控制管理器的所有属性和服务定义中指定的参数。
不幸的是,当前工作目录不是这些参数之一,正如您在 ChangeServiceConfigA 函数。
如果您希望更改服务的当前工作目录,则需要从服务内部进行更改。