Как запустить службу Windows с рабочим каталогом, отличным от system32

Как запустить службу Windows с рабочим каталогом, отличным от system32

Есть ли способ запустить службу с помощью sc(или любого другого инструмента) в Windows и задать для нее рабочий каталог, отличный от C:\Windows\system32(который является каталогом по умолчанию)?

Я знаю, что могу указать это в исходном коде сервиса, но я ищу решение, которое не требует изменения исходного кода сервиса.

решение1

Службы запускаются из приложения, называемого Service Control Manager. Это приложение находится в системном каталоге %WinDir%\System32 , и это его текущий рабочий каталог.

При запуске системной службы она по умолчанию наследует все атрибуты диспетчера управления службами и параметры, указанные в определении службы.

К сожалению, текущий рабочий каталог не входит в число этих параметров, как вы можете видеть в Функция ChangeServiceConfigA.

Если вы хотите изменить текущий рабочий каталог службы, вам придется сделать это изнутри самой службы.

Связанный контент