¿Cómo cambiar la ruta al ejecutable de un servicio de Windows?

¿Cómo cambiar la ruta al ejecutable de un servicio de Windows?

Quiero cambiar la ruta al ejecutable de un servicio desde la línea de comando.

¿Cómo puedo hacer eso?

Quiero ejecutar otro .EXE desde la ruta de ese servicio al ejecutable.

Respuesta1

Puede utilizar el sc configcomando para cambiar la ruta a la que apunta un servicio:

SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"

Esto actualizará el servicio llamado YourServiceNamey cambiará la entrada "Ruta al ejecutable" a C:\SomeDirectory\YourFile.EXE. Querrás reiniciar tu servicio después, lo que puedes hacer con:

NET STOP YourServiceName & NET START YourServiceName

Respuesta2

Deberá hacerlo en el registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicios

Navegue hasta el servicio, luego modifique el nombre de la imagen para reflejar la nueva ruta

Como siempre, haz una copia de seguridad del sistema ANTES.

Respuesta3

La respuesta proporcionada anteriormente funciona muy bien, no puedo responderla, pero para sumar, en caso de que necesite tener comillas u otros argumentos en la ruta, digamos para corregir una vulnerabilidad de ruta sin comillas en el registro, como una ruta de imagen, usted puede hacer lo siguientede CMDcomo administrador:

(por ejemplo, para C:\Program Files (x86)\YourService\YourProcess.exe)

SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"

puedes hacer lo siguientedesde powershellcomo administrador:

 SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"

Estos le darán el siguiente resultado:

"C:\Program Files (x86)\YourService\YourProcess.exe"

...¡Las discusiones sangrientas y los parámetros de escape son una pesadilla! Espero que esto ayude a alguien en el futuro.

Respuesta4

No puede editar directamente su ruta para ejecutar un servicio. Para eso puedes usar el comando sc,

Abra su símbolo del sistema como administrador y luego escriba el siguiente comando,

SC CONFIG ServiceName binPath= "Path of your file"

P.ej:

sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"

información relacionada