如果.NET Windows服务文件不存在,如何卸载该服务?

我使用InstallUtil安装了. net Windows服务。后来我删除了这些文件,但忘了运行

 InstallUtil /u

首先,所以服务仍然列在服务MMC中。

我要去登记吗?还是有更好的办法?


当前回答

最简单的方法是使用Sys Internals Autoruns

在管理模式下启动它,然后可以通过删除键删除过时的服务

其他回答

-Windows+r打开cmd。

此代码删除您的服务。

卸载“你的服务路径”此代码卸载你的服务。

如果你想使用一个工具,你可以使用Process Hacker

表单来创建服务:

删除服务的上下文菜单:

我发现Process Hacker是一个比Windows自带的Taskmgr.exe更方便的管理Windows进程和服务的工具。特别是在Windows XP上,你根本不能从任务管理器中访问服务。

很多很棒的答案,这真的帮助了我,但有一件事是缺失的。有提到通过cmd与sc查询类型= service找到服务,但问题是,我正在寻找的服务没有运行,这个命令只显示正在运行的服务(这可能是一个新功能,在OP回答时不存在)。

你必须将服务的状态传递给这样的命令:sc query state= all或sc query state= inactive。没有必要传递type= service,因为这是默认值。

并且,如上所述,将其推到一个文本文件中,以便更容易搜索sc query state= inactive > C:\servicesStopped.txt

来源:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-query

您可以尝试运行Autoruns,这将使您不必手动编辑注册表。当您没有所需的权限时,这尤其有用。

在以管理员模式运行的命令提示符中,使用Windows的"sc.exe"实用程序。你会运行这样的程序:

sc delete <service-name>

如果服务名有一个或多个空格,则用双引号括起来(h/t @geoffc):

sc delete "<service-name>"