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 ?

213
demandé sur GenericJon 2011-08-25 16:37:43

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
184
répondu Niall Connaughton 2017-03-20 10:04:24

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.

278
répondu Matt McHugh 2011-08-25 12:42:55

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"
9
répondu Greg Sansom 2015-08-13 05:18:41

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

1
répondu Antony Joseph 2018-08-01 19:37:00

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"
0
répondu Codemaker 2018-08-14 09:30:25

vous pouvez supprimer le service:

sc delete ServiceName

puis recréer le service.

-1
répondu Kim Wilson 2016-09-19 08:44:52

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.. Select 'SERVICE_NAME: ', CTRL+H, click 'Replace All' Imagine that we can do 'Replace All' within 'CMD'

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]

it is 'SERVICES on Our Machine' 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"

-2
répondu Rhak Kahr 2017-10-27 14:16:38