J'aimerais modifier le chemin d'accès à mon application, mais cela le casse car le service pointe toujours vers l'ancien emplacement.
En allant à Administrative Tools > Services
, vous pouvez ouvrir une boîte de dialogue de propriétés et afficher le Path to executable
, mais vous ne pouvez pas le modifier.
Existe-t-il un moyen pour un utilisateur de modifier le chemin de service sans avoir à réinstaller l'application?
Il y a aussi cette approche vue sur SuperUser qui utilise la ligne de commande sc
au lieu de modifier le registre:
sc config <service name> binPath= <binary path>
Remarque: l'espace après binPath=
est important. Vous pouvez également interroger la configuration actuelle en utilisant:
sc qc <service name>
Cela affiche une sortie similaire à:
[SC] SUCCÈS DE QueryServiceConfig
SERVICE_NAME: Nom du service
TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\Services\ServiceName LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : <Display name> DEPENDENCIES : SERVICE_START_NAME : user-name@domain-name
Cela implique la modification du registre, mais les informations sur le service peuvent être trouvées dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
. Recherchez le service que vous souhaitez rediriger, localisez la sous-clé ImagePath
et modifiez cette valeur.
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"
Ouvrez Run (win + R), tapez "Regedit.exe", pour ouvrir "Registry Editor", allez à
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
trouver " Apache2.4 " ouvrir le dossier trouver le " ImagePath " dans le côté droit, ouvrir "ImagePath" sous " value Data ", indiquez le chemin suivant:
"C:\xampp\Apache\bin\httpd.exe" -k runservice foe XAMPP pour d'autres pointent vers l'emplacement d'installation d'Apache et localisent le dossier bin "C: (emplacement d'installation d'Apache)\bin\httpd.exe "-k runservice
Vous ne pouvez pas éditer directement votre chemin pour exécuter un service. Pour cela, vous pouvez utiliser la commande sc,
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"