修改Windows服务的“可执行文件的path”
我想修改我的应用程序的path,但这样做打破了它,因为服务仍然指向旧的位置。
通过转到Administrative Tools > Services
您可以打开一个属性对话框并查看Path to executable
的Path 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编辑..
然后,继续'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
任何改进的想法都是值得欢迎的