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

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

 InstallUtil /u

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

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


当前回答

你可以通过命令提示符卸载你的windows服务,也可以只写这段命令

cd\                                                                   

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)                                           

installutil c:\\xxx.exe(physical path of your service) -d

其他回答

第一步:移动到服务所在的目录

命令:cd c:\xxx\yyy\service

第二步:输入以下命令

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe service.exe \u .exe

这里service.exe是你的服务exe, \u将卸载服务。 您将看到“卸载已完成”消息。

如果你想安装一个服务,在上面的命令中删除\u将安装你的服务

我们发现,即使运行sc_delete,服务的注册表中仍可能有一个条目,因此重新安装服务会导致一组已损坏的注册表项(它们不匹配)。我们所做的是重新注册,并手动删除这个剩余的条目。

注意:ShipmunkService在sc_delete之后仍然显示!

然后重新安装,您的服务将正常运行。祝你们好运,愿原力与你们同在。

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

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

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

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

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

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

通过注册表删除Windows服务

如果你知道正确的路径,很容易从注册表中删除服务。以下是我的做法:

执行Regedit或Regedt32 打开注册表项“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services” 寻找要删除的服务并删除它。您可以查看这些键来了解服务正在使用哪些文件,并在必要时删除它们。

通过命令窗口删除Windows服务

您也可以使用命令提示符删除服务,如下所示:

sc删除

还可以使用以下命令创建服务

sc create "MorganTechService" binpath= "C:\Program Files\MorganTechSPace\myservice.exe"

注意:您可能必须重新启动系统才能在服务管理器中更新列表。