更改我的 Windows 服务的描述

Change the Description of my Windows Service

根据 this answer 的说法,似乎没有正式的方法来设置 Windows 服务的版本。然而,这可以通过将其插入 DescriptionDisplayName.

来完成

我希望能够更改版本号而无需删除并重新安装该服务。但是除了安装本身,我找不到设置描述的方法。

那么,有什么方法可以在不重新安装的情况下更改服务的描述吗?

最好使用.Net。如果重要的话,服务本身也是 .Net。

如果您需要 Windows 服务的可执行文件的版本号,并且可执行文件是 .NET 程序集,则检索服务可执行文件的路径,然后从中检索版本executable/assembly.

虽然这不是纯 .NET 解决方案,但它可以在 .NET 中实现,并且它是 MS 支持的重新配置服务的唯一方法之一。另外,它不需要直接的注册表操作(尽可能避免)。

您可以使用 Windows 命令行服务控制器实用程序更改 Windows 服务的描述,SC.exe.

您可以从 .NET 代码中执行您需要执行的命令,或者从 shell 或脚本中调用它,例如 CMD.exe 或 PowerShell。

sc.exe config YourServiceName displayName= "Your service description..."

注:

  • 有关 SC config 命令的详细信息可在此处找到:MS Docs SC Config man page
  • YourServiceName 是您的应用程序的实际服务名称,而不是当前的 DisplayName(当然,除非它们相同)
  • 如果您的 DisplayName 不止一个字,需要用引号括起来
  • 单词"displayName"和等号
  • 之间不能有space
  • 等号和所需服务描述的开头之间必须有一个或多个 space

这可以通过以下命令使用 SC.exe 实用程序来完成:

sc description <ServiceName> "Any Description you like."

可以从以管理员身份打开的命令 window 或从 .Net 应用程序调用此命令,前提是该服务已经创建。