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

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

 InstallUtil /u

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

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


当前回答

一些人提到sc delete作为答案。我就是这样做的,但是花了一些时间才找到<service-name>参数。

命令sc query type= service(注意,它的格式非常讲究,“service”前面的空格是必要的)将输出已安装的Windows服务的列表,以及它们的限定名称,用于sc delete <service-name>命令。

这个列表相当长,所以你可以考虑将输出输出到一个文本文件(即>> C:\test.txt),然后搜索它。

SERVICE_NAME是与sc delete <service-name>命令一起使用的。

其他回答

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

sc delete <service-name>

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

sc delete "<service-name>"

在Windows 8中使用“sc delete”的注意事项:

1)以提升权限打开CMD窗口。[Windows Key-X弹出带有选项的菜单;选择“命令提示符(管理员)”。] 2)在服务中使用列表中的插入名称[例如,我使用“sc delete gupdate”,而在服务中,它读为“谷歌Update (gupdate)”]

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

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

一些人提到sc delete作为答案。我就是这样做的,但是花了一些时间才找到<service-name>参数。

命令sc query type= service(注意,它的格式非常讲究,“service”前面的空格是必要的)将输出已安装的Windows服务的列表,以及它们的限定名称,用于sc delete <service-name>命令。

这个列表相当长,所以你可以考虑将输出输出到一个文本文件(即>> C:\test.txt),然后搜索它。

SERVICE_NAME是与sc delete <service-name>命令一起使用的。

如果原来的Service . installlog和. installstate文件仍然在文件夹中,您可以尝试重新安装可执行文件以替换这些文件,然后使用InstallUtil /u,然后卸载程序。这有点复杂,但对我来说在一个特定的例子中是有效的。