Modifier le "chemin vers l'exécutable" d'un service windows
j'aimerais modifier le chemin de mon application, mais ce faisant le casse parce que le service pointe toujours à l'ancien emplacement.
en allant à Administrative Tools > Services
vous pouvez ouvrir un dialogue de propriétés et voir le Path to executable
, mais il n'y a aucun moyen de le changer.
est-il possible pour un utilisateur de modifier le chemin de service sans avoir à réinstaller l'application ?
7 réponses
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>
Note: l'espace après binPath=
est important. Vous pouvez également interroger la configuration actuelle en utilisant:
sc qc <service name>
affiche une sortie similaire à:
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: ServiceName
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
Il s'agit de modifier le registre, mais le service d'informations peuvent être trouvées dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
. Trouvez le service que vous voulez rediriger, localisez la sous-clé ImagePath
et changez cette valeur.
vous pouvez aussi 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"
Ouvrir Exécuter(win+R) , tapez "Regedit.exe" , ouvrir "Editeur du Registre", aller à
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
trouver " Apache2.4 "ouvrir le dossier de trouver" la ImagePath " dans le côté droit, ouvrir "ImagePath" sous " données de valeur "mettez le chemin suivant:
" C:\xampp\apache\bin\httpd.exe",- k runservice ennemi XAMPP pour les autres point à l'emplacement où Apache est installé et à l'intérieur de localiser le dossier bin "C:(Apache emplacement d'installation)\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"
vous pouvez supprimer le service:
sc delete ServiceName
puis recréer le service.
un peu plus profond avec la commande 'SC', nous pouvons extraire tous les 'services Name' et obtenir tous les 'QueryServiceConfig' :)
>SC QUERY > "%computername%-services.txt" [enter]
>FIND "SERVICE_NAME: " "%computername%-services.txt" /i > "%computername%-services-name.txt" [enter]
>NOTEPAD2 "%computername%-services-name.txt" [enter]
Ne "petits" NOTEPAD2 d'édition..
alors, continuez avec "CMD"..
>FOR /F "DELIMS= SKIP=2" %S IN ('TYPE "%computername%-services-name.txt"') DO @SC QC "%S" >> "%computername%-services-list-config.txt" [enter]
>NOTEPAD2 "%computername%-services-list-config.txt" [enter]
Les données brutes sont prêtes pour l'alimentation 'futur fichier batch' donc le résultat ressemble à ceci ci-dessous!!!
+ -------------+-------------------------+---------------------------+---------------+--------------------------------------------------+------------------+-----+----------------+--------------+--------------------+
| SERVICE_NAME | TYPE | START_TYPE | ERROR_CONTROL | BINARY_PATH_NAME | LOAD_ORDER_GROUP | TAG | DISPLAY_NAME | DEPENDENCIES | SERVICE_START_NAME |
+ -------------+-------------------------+---------------------------+---------------+--------------------------------------------------+------------------+-----+----------------+--------------+--------------------+
+ WSearch | 10 WIN32_OWN_PROCESS | 2 AUTO_START (DELAYED) | 1 NORMAL | C:\Windows\system32\SearchIndexer.exe /Embedding | none | 0 | Windows Search | RPCSS | LocalSystem |
+ wuauserv | 20 WIN32_SHARE_PROCESS | 2 AUTO_START (DELAYED) | 1 NORMAL | C:\Windows\system32\svchost.exe -k netsvcs | none | 0 | Windows Update | rpcss | LocalSystem |
mais, HTML sera plus facile :d
toutes les idées brillantes d'amélioration sont les bienvenues"