Voglio cambiare il percorso dell'eseguibile per un servizio dalla riga di comando.
Come posso fare ciò?
Voglio eseguire un altro .EXE dal percorso del servizio all'eseguibile.
Voglio cambiare il percorso dell'eseguibile per un servizio dalla riga di comando.
Come posso fare ciò?
Voglio eseguire un altro .EXE dal percorso del servizio all'eseguibile.
Risposte:
È possibile utilizzare il sc config
comando per modificare il percorso a cui punta un servizio:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Ciò aggiornerà il servizio chiamato YourServiceName
e modificherà la voce "Percorso eseguibile" in C:\SomeDirectory\YourFile.EXE
. In seguito, dovrai riavviare il servizio, cosa che puoi fare con:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
contengono anche virgolette e altri parametri? Ad esempio: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
purtroppo ho dovuto seguire la rotta regedit per questo.
Dovrai farlo nel registro:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Passare al servizio, quindi modificare il nome dell'immagine per riflettere il nuovo percorso
Come sempre, eseguire un backup del sistema PRIOR.
Potresti anche farlo con 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")
O:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
-Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
La risposta fornita sopra funziona alla grande, non posso rispondervi, ma per aggiungere, nel caso abbiate bisogno di virgolette o altri argomenti nel percorso, dite di correggere una vulnerabilità del percorso non quotata nel registro, come un percorso di immagine, voi può eseguire le seguenti operazioni da CMD come amministratore:
(ad es. per C: \ Programmi (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
puoi eseguire le seguenti operazioni da PowerShell come amministratore:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Questi ti daranno il seguente risultato:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... discussioni insanguinate e parametri di fuga sono un incubo! Spero che questo aiuti qualcuno in futuro.
Non è possibile modificare direttamente il percorso per eseguire un servizio. Per questo puoi usare il comando sc,
Apri il prompt dei comandi come amministratore, quindi digita il comando seguente,
SC CONFIG ServiceName binPath= "Path of your file"
Per esempio:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"