如何更改 Windows 服务的名称?

Posted

技术标签:

【中文标题】如何更改 Windows 服务的名称?【英文标题】:How can I change the name of a windows service? 【发布时间】:2011-04-22 16:35:48 【问题描述】:

我有一个用 C# 开发的 Windows 服务应用程序。需要使用不同的配置文件运行相同的服务。要在同一台机器上运行这些,我需要更改服务的名称。我可以创建解决方案的多个副本,但不确定如何更改服务的名称。

谢谢

【问题讨论】:

【参考方案1】:

在派生自ServiceBase 的win 服务类中,有一个可继承的属性,您可以将其设置为ServiceName。您可以创建一个 app.config,为服务名称添加一个设置,并让您的 win 服务类相应地分配该属性。这样,只要您更改 app.config 中的设置,每个服务名称都将是唯一的。

【讨论】:

如果有人需要,这个例子会更详细地介绍它:codeproject.com/Articles/21320/… 对于 Joel 的链接,如何从安装程序中的 app.config 获取 ServiceName 的细节对我不起作用(可能已经过时,因为它是为 .NET 2.0 编写的),但是该解决方案运行良好:***.com/questions/8516701/…【参考方案2】:

Windows 服务的配置存储在注册表中,位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services... 您可能希望同时更改密钥的名称(“文件夹”、以及此处的服务的真实名称)和值“显示名称”。

use a tool like SC.EXE to configure services 可能会更好,以避免因注册表编辑错误而导致问题。虽然 SC 无法就地重命名服务,但它确实允许您删除和创建服务(只要确保所有设置正确!)。

【讨论】:

对不起,如果我的问题有点混乱......我想在解决方案本身中更改服务的名称。怎么办?【参考方案3】:

服务名称也可以通过ProjectInstaller设计模式进行编辑。 ServiceInstaller中有一个名为ServiceName的属性。

【讨论】:

此外,EventLog 中出现的名称是在 Service 设计模式本身中通过属性 ServiceName 设置的。

以上是关于如何更改 Windows 服务的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 中更改默认播放和录制设备名称?

更改 FriendlyName 注册表值后如何强制 Windows 设备管理器刷新设备名称显示

win10为啥我无法更改账户名称

无法卸载 Windows 服务:“...无法删除,因为它与日志名称相同。”

如何卸载windows的服务?卸载服务

如何获取以常用词开头的所有 Windows 服务名称?