
¿Hay alguna forma de iniciar un servicio usando sc
(o cualquier otra herramienta) en Windows y configurar su directorio de trabajo en uno diferente al C:\Windows\system32
(que es el predeterminado)?
Sé que puedo especificar eso en el código fuente del servicio, pero estoy buscando una solución que no implique modificar el código fuente del servicio.
Respuesta1
Los servicios se inician desde una aplicación llamada Service Control Manager. Esta aplicación vive en el directorio del sistema %WinDir%\System32
y este es su directorio de trabajo actual.
Cuando se inicia el servicio del sistema, hereda por defecto todos los atributos del Administrador de control de servicios y los parámetros especificados en la definición del servicio.
Desafortunadamente, el directorio de trabajo actual no es uno de esos parámetros, como puede ver en la Función ChangeServiceConfigA.
Si desea cambiar el directorio de trabajo actual del servicio, deberá hacerlo desde el propio servicio.