
Я хочу изменить путь к исполняемому файлу службы из командной строки.
Как мне это сделать?
Я хочу запустить другой .EXE-файл из пути этой службы к исполняемому файлу.
решение1
Вы можете использовать sc config
команду для изменения пути, на который указывает служба:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Это обновит вызываемую службу YourServiceName
и изменит запись "Path to Executable" на C:\SomeDirectory\YourFile.EXE
. После этого вам нужно будет перезапустить службу, что можно сделать с помощью:
NET STOP YourServiceName & NET START YourServiceName
решение2
Это нужно будет сделать в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Перейдите к сервису, затем измените имя образа, чтобы оно отражало новый путь.
Как всегда, сделайте резервную копию системы ПРЕЖДЕ.
решение3
Приведенный выше ответ отлично работает, я не могу на него ответить, но если подвести итог, в случае, если вам нужно иметь кавычки или другие аргументы в пути, скажем, чтобы исправить уязвимость пути без кавычек в реестре, например, imagepath, вы можете сделать следующееот CMDкак администратор:
(например, для C:\Program Files (x86)\YourService\YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
вы можете сделать следующееиз PowerShellкак администратор:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Это даст вам следующий результат:
"C:\Program Files (x86)\YourService\YourProcess.exe"
...чертовы аргументы и экранирование параметров - это кошмар! Надеюсь, это поможет кому-то в будущем.
решение4
Вы не можете напрямую редактировать свой путь для выполнения сервиса. Для этого вы можете использовать команду sc,
Откройте командную строку от имени администратора и введите следующую команду:
SC CONFIG ServiceName binPath= "Path of your file"
Например:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"