更改我的 Windows 服务的描述

isp*_*iro 3 .net c# windows-services

根据此答案 ,似乎没有为 Windows 服务设置版本的官方方法。但是,这可以通过将其插入其Descriptionor来完成DisplayName

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

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

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

小智 12

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

sc description <ServiceName> "Any Description you like."
Run Code Online (Sandbox Code Playgroud)

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


STL*_*Dev 2

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

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

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

sc.exe config YourServiceName displayName= "Your service description..."
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 有关该命令的详细信息SC config可以在此处找到:MS Docs SC Config 手册页
  • YourServiceName 是应用程序的实际服务名称,而不是当前的 DisplayName(当然,除非它们相同)
  • 如果您的 DisplayName 超过一个单词,则需要将其用引号引起来
  • “displayName”一词和等号之间不能有空格
  • 等号与所需服务描述的开头之间必须有一个或多个空格

  • 问题是关于描述的,尽管也提到了 DisplayName。您的答案是关于更改显示名称,尽管您将其措辞为**您可以更改描述** (6认同)
  • @isspiro 您接受的这个答案具有误导性。您询问了**更改说明**。答案是关于**您可以更改描述**。事实上,这个答案是关于改变displayName的。遵循这个答案的人可能会通过错误地更改服务的显示名称来破坏他们的系统,因为它可以在脚本中使用,操纵服务。请看下面的[Maineac 的答案](/sf/answers/3971929321/) (4认同)