修改Windows服务的“可执行路径”

时间:2011-08-25 12:37:43

标签: windows windows-services

我想修改我的应用程序的路径,但这样做会打破它,因为该服务仍然指向旧位置。

转到Administrative Tools > Services,您可以打开属性对话框并查看Path to executable,但无法更改它。

用户是否可以在不重新安装应用程序的情况下修改服务路径?

8 个答案:

答案 0 :(得分:285)

它涉及编辑注册表,但可以在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services中找到服务信息。找到要重定向的服务,找到ImagePath子项并更改该值。

答案 1 :(得分:215)

还有this approach seen on SuperUser使用sc命令行而不是修改注册表:

sc config <service name> binPath= <binary path>

注意:binPath=之后的空格非常重要。您还可以使用以下方法查询当前配置:

sc qc <service name>

显示的输出类似于:

  

[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

答案 2 :(得分:10)

您也可以使用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")

或者:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
    -Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"

答案 3 :(得分:3)

打开运行(win + R),键入“ Regedit.exe”,打开“注册表编辑器”,转到

  

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services

找到“ Apache2.4 ”,打开文件夹,在右侧找到“ ImagePath ”,打开“ ImagePath” 在“ 值数据”下,输入以下路径:

  

“ C:\ xampp \ apache \ bin \ httpd.exe” -k runservice 对于其他用户,XAMPP指向安装Apache的位置,并在其中找到bin文件夹“ C:(Apache安装位置)\ bin \ httpd.exe“ -k runservice

答案 4 :(得分:0)

您不能直接编辑执行服务的路径。为此,您可以使用sc命令,

SC CONFIG ServiceName binPath= "Path of your file"

例如:

sc config MongoDB binPath="I:\Programming\MongoDB\MongoDB\bin\mongod.exe --config I:\Programming\MongoDB\MongoDB\bin\mongod.cfg --service"

答案 5 :(得分:0)

对于@CodeMaker的答案进行略微修改,适用于像我这样试图修改MongoDB服务以使用身份验证的人。

当我查看“服务”中的“可执行文件的路径”时,执行的行已经包含语音标记。所以我不得不对他的例子做些小的修改。

具体来说。

  1. 在Windows中键入服务
  2. 找到MongoDB(或您要更改的服务)并打开该服务,并确保将其停止。
  3. 记下服务名称(而不是显示名称)
  4. 查找并复制“可执行文件的路径”并将其复制。

对我来说,道路是(请注意语音标记)

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" --service

在命令行中输入

sc config MongoDB binPath= "<Modified string with \" to replace ">"

在我看来,这是

sc config MongoDB binPath= "\"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe\" --config \"C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg\" --service -- auth"

答案 6 :(得分:-2)

您可以删除该服务:

sc delete ServiceName

然后重新创建服务。

答案 7 :(得分:-2)

使用'SC'命令稍微深入一点,我们能够提取所有'服务名称'并获得所有'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]

做'小'NOTEPAD2编辑.. Select 'SERVICE_NAME: ', CTRL+H, click 'Replace All' Imagine that we can do 'Replace All' within 'CMD'

然后,继续'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' 原始数据已准备好提供“未来批处理文件”,因此结果如下所示!!!

+ -------------+-------------------------+---------------------------+---------------+--------------------------------------------------+------------------+-----+----------------+--------------+--------------------+
| 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        |

但是,HTML会更容易:D

欢迎提出任何改进的好主意V ^ _ ^