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

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

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


当前回答

您可以删除该服务:

sc delete ServiceName

然后重新创建服务。

其他回答

使用Invoke-WmiMethod的替代方法是使用更新的CIM cmdlet。这也避免了@($null,$null…)对象的需要,就像在前面的回答中看到的那样。

Get-CimInstance win32_service -Filter "Name='My Service'" | Invoke-CimMethod -MethodName - Change -Arguments @{PathName="C:\Program Files\My Service\NewName.exe"}

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

SC CONFIG ServiceName binPath= "Path of your file"

Eg:

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

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

在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

我只是觉得为Git Bash用户添加,你应该把路径放在单引号中

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

——config "C:\Program Files\MongoDB\Server\5.03\bin\mongo .cfg"——service——auth "

我用Git Bash在Windows 10上更新了服务的路径