修改Windows服务的“可执行文件的path”

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

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

有没有办法用户可以修改服务path,而不必重新安装应用程序?

它涉及编辑registry,但服务信息可以在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 。 find要redirect的服务,findImagePath子项并更改该值。

SuperUser上也有这种方法,它使用sc命令行而不是修改registry:

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

注意: binPath=之后的空间很重要。 您还可以使用以下命令查询当前configuration:

 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 

你也可以用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" 

您可以删除该服务:

 sc delete ServiceName 

然后重新创build服务。

使用'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编辑.. 选择“SERVICE_NAME:”,按CTRL + H,点击“全部替换” 想象一下,我们可以在“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] 

这是'我们的机器上的服务' 原始数据已准备好喂养'将来的batch file',所以结果如下图所示!

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

任何改进的想法都是值得欢迎的