Je souhaite modifier le chemin d'accès à l'exécutable pour un service à partir de la ligne de commande.
Comment puis je faire ça?
Je veux exécuter un autre .exe du chemin de ce service à l'exécutable.
Je souhaite modifier le chemin d'accès à l'exécutable pour un service à partir de la ligne de commande.
Comment puis je faire ça?
Je veux exécuter un autre .exe du chemin de ce service à l'exécutable.
Réponses:
Vous pouvez utiliser la sc config
commande pour changer le chemin d'accès d'un service à:
SC CONFIG YourServiceName binPath= "C:\SomeDirectory\YourFile.EXE"
Cela mettra à jour le service appelé YourServiceName
et modifiera l'entrée "Chemin d'accès vers l'exécutable" C:\SomeDirectory\YourFile.EXE
. Vous souhaitez ensuite redémarrer votre service, ce que vous pouvez faire avec:
NET STOP YourServiceName & NET START YourServiceName
Path to executable
contient également des guillemets et d'autres paramètres? Par exemple: "C:\Program Files\CollabNet\Subversion Server\svnserve.exe" --service -r "E:\Repositories" --listen-port "3690"
je devais malheureusement suivre la voie regedit pour celui-ci.
Vous devrez le faire dans le registre:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Accédez au service, puis modifiez le nom de l'image pour refléter le nouveau chemin.
Comme toujours, faites une sauvegarde du système AVANT.
Vous pouvez également le faire avec 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"
La réponse fournie ci-dessus fonctionne très bien, je ne peux pas y répondre, mais pour résumer, au cas où vous auriez besoin de guillemets ou d'autres arguments dans le chemin, par exemple, pour réparer une vulnérabilité de chemin non-cité dans le registre, comme un chemin d'image, peut effectuer les tâches suivantes à partir de CMD en tant qu'administrateur:
(par exemple, pour C: \ Program Files (x86) \ YourService \ YourProcess.exe)
SC CONFIG YourService binPath= "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
vous pouvez faire ce qui suit à partir de powershell en tant qu'administrateur:
SC.exe CONFIG YourService binPath= --% "\"C:\Program Files (x86)\YourService\YourProcess.exe\"
Ceux-ci vous donneront le résultat suivant:
"C:\Program Files (x86)\YourService\YourProcess.exe"
... les arguments sanglants et les paramètres qui s'échappent sont un cauchemar! J'espère que cela aidera quelqu'un dans le futur.
Vous ne pouvez pas éditer directement votre chemin pour exécuter un service. Pour cela, vous pouvez utiliser la commande sc,
Ouvrez votre invite de commande en tant qu'administrateur puis tapez la commande suivante,
SC CONFIG ServiceName binPath= "Path of your file"
Par exemple:
sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"