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

通过转到管理工具>服务,您可以打开一个属性对话框并查看可执行文件的路径,但没有办法更改它。

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


当前回答

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

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \服务

找到“Apache2.4”打开文件夹在右边找到“ImagePath”,打开“ImagePath” 在“value Data”下输入以下路径:

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

其他回答

对于这种情况,最好的方法是卸载应用程序并重新安装应用程序。这是正确的合法途径。

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

Or:

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

您可以删除该服务:

sc delete ServiceName

然后重新创建服务。

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

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \服务

找到“Apache2.4”打开文件夹在右边找到“ImagePath”,打开“ImagePath” 在“value Data”下输入以下路径:

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

在SuperUser上也有这种方法,使用sc命令行而不是修改注册表:

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

注意:binPath=后面的空格很重要。您还可以使用以下命令查询当前配置:

sc qc <service name>

这将显示类似的输出:

[SC] QueryServiceConfig SUCCESS . SERVICE_NAME:名 类型:10 win32_own_process Start_type: 2 auto_start Error_control: 1 normal BINARY_PATH_NAME: C:\Services\ServiceName LOAD_ORDER_GROUP: 标签:0 DISPLAY_NAME: <显示名称> 依赖关系: SERVICE_START_NAME: user-name@domain-name