Chcę zmienić ścieżkę do pliku wykonywalnego usługi z wiersza polecenia.
Jak mogę to zrobić?
Chcę uruchomić inny plik .EXE ze ścieżki tej usługi do pliku wykonywalnego.
Chcę zmienić ścieżkę do pliku wykonywalnego usługi z wiersza polecenia.
Jak mogę to zrobić?
Chcę uruchomić inny plik .EXE ze ścieżki tej usługi do pliku wykonywalnego.
Odpowiedzi:
Możesz użyć sc config
polecenia, aby zmienić ścieżkę, na którą wskazuje usługa:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Spowoduje to zaktualizowanie nazwanej usługi YourServiceName
i zmianę wpisu „Ścieżka do pliku wykonywalnego” na C:\SomeDirectory\YourFile.EXE
. Później będziesz chciał ponownie uruchomić usługę, co możesz zrobić za pomocą:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
zawiera również cytaty i inne parametry? Na przykład: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
niestety musiałem wybrać trasę regedit.
Musisz to zrobić w rejestrze:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Przejdź do usługi, a następnie zmień nazwę obrazu, aby odzwierciedlić nową ścieżkę
Jak zawsze wykonaj kopię zapasową systemu PRIOR.
Możesz to również zrobić za pomocą 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")
Lub:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
Powyższa odpowiedź działa świetnie, nie mogę na nią odpowiedzieć, ale aby dodać, na wypadek, gdybyś potrzebował cudzysłowów lub innych argumentów na ścieżce, powiedz, aby naprawić lukę w cudzysłowiu ścieżki w rejestrze, taką jak ścieżka obrazu, może wykonać następujące czynności z CMD jako administrator:
(np. dla C: \ Program Files (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
jako administrator możesz wykonać następujące czynności z programu PowerShell :
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
To daje następujący wynik:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... krwawe kłótnie i parametry ucieczki to koszmar! Mam nadzieję, że to pomoże komuś w przyszłości.
Nie można bezpośrednio edytować ścieżki do wykonania usługi. W tym celu możesz użyć polecenia sc,
Otwórz wiersz polecenia jako administrator, a następnie wpisz następujące polecenie,
SC CONFIG ServiceName binPath= "Path of your file"
Na przykład:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"