Respostas:
Você pode usar o sc config
comando para alterar o caminho para o qual um serviço aponta:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Isso atualizará o serviço chamado YourServiceName
e alterará a entrada "Caminho para o executável" para C:\SomeDirectory\YourFile.EXE
. Você deseja reiniciar o serviço posteriormente, o que pode ser feito com:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
também contém aspas e outros parâmetros? Por exemplo: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
infelizmente tive que seguir a rota regedit para esta.
Você precisará fazer isso no registro:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Navegue até o serviço e modifique o nome da imagem para refletir o novo caminho
Como sempre, faça um backup do sistema antes.
Você também pode fazer isso com o PowerShell:
Get-WmiObject win32_service -filter "Name='My Service'" `
| Invoke-WmiMethod -Name Change `
-ArgumentList @($null,$null,$null,$null,$null, `
"C:\Program Files (x86)\My Service\NewName.EXE")
Ou:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
A resposta fornecida acima funciona muito bem, não posso respondê-la, mas, para adicionar, caso você precise de aspas ou outros argumentos no caminho, digamos para corrigir uma vulnerabilidade de caminho não citado no registro, como um caminho de imagem, você pode fazer o seguinte no CMD como administrador:
(por exemplo, para C: \ Arquivos de Programas (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
você pode fazer o seguinte no powershell como administrador:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Isso fornecerá o seguinte resultado:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... argumentos sangrentos e parâmetros de escape são um pesadelo! Espero que isso ajude alguém no futuro.
Você não pode editar diretamente o seu caminho para executar um serviço. Para isso você pode usar o comando sc,
Abra seu prompt de comando como administrador e digite o seguinte comando,
SC CONFIG ServiceName binPath= "Path of your file"
Por exemplo:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"