如果.NET Windows服务文件不存在,如何卸载该服务?
我使用InstallUtil安装了. net Windows服务。后来我删除了这些文件,但忘了运行
InstallUtil /u
首先,所以服务仍然列在服务MMC中。
我要去登记吗?还是有更好的办法?
如果.NET Windows服务文件不存在,如何卸载该服务?
我使用InstallUtil安装了. net Windows服务。后来我删除了这些文件,但忘了运行
InstallUtil /u
首先,所以服务仍然列在服务MMC中。
我要去登记吗?还是有更好的办法?
当前回答
通过注册表删除Windows服务
如果你知道正确的路径,很容易从注册表中删除服务。以下是我的做法:
执行Regedit或Regedt32 打开注册表项“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services” 寻找要删除的服务并删除它。您可以查看这些键来了解服务正在使用哪些文件,并在必要时删除它们。
通过命令窗口删除Windows服务
您也可以使用命令提示符删除服务,如下所示:
sc删除
还可以使用以下命令创建服务
sc create "MorganTechService" binpath= "C:\Program Files\MorganTechSPace\myservice.exe"
注意:您可能必须重新启动系统才能在服务管理器中更新列表。
其他回答
在以管理员模式运行的命令提示符中,使用Windows的"sc.exe"实用程序。你会运行这样的程序:
sc delete <service-name>
如果服务名有一个或多个空格,则用双引号括起来(h/t @geoffc):
sc delete "<service-name>"
你至少有三个选择。我已经按照使用偏好的顺序列出了它们。
方法1 -您可以使用资源工具包中的SC工具(SC .exe)。 (Windows 7/8附带)
打开命令提示符并输入
sc delete <service-name>
工具帮助片段如下:
DESCRIPTION:
SC is a command line program used for communicating with the
NT Service Controller and services.
delete----------Deletes a service (from the registry).
方法2 -使用delserv
下载并使用delserv命令行实用程序。这是为Windows 2000开发的遗留工具。在当前的windows XP盒子中,这被方法1中描述的sc所取代。
方法3 -手动删除注册表项(注意这在Windows 7/8中适得其反)
Windows服务在以下注册表项下注册。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
在引用键下搜索具有服务名称的子键并删除它。(并且您可能需要重新启动才能从Services列表中完全删除该服务)
如果原来的Service . installlog和. installstate文件仍然在文件夹中,您可以尝试重新安装可执行文件以替换这些文件,然后使用InstallUtil /u,然后卸载程序。这有点复杂,但对我来说在一个特定的例子中是有效的。
一些人提到sc delete作为答案。我就是这样做的,但是花了一些时间才找到<service-name>参数。
命令sc query type= service(注意,它的格式非常讲究,“service”前面的空格是必要的)将输出已安装的Windows服务的列表,以及它们的限定名称,用于sc delete <service-name>命令。
这个列表相当长,所以你可以考虑将输出输出到一个文本文件(即>> C:\test.txt),然后搜索它。
SERVICE_NAME是与sc delete <service-name>命令一起使用的。
通过注册表删除Windows服务
如果你知道正确的路径,很容易从注册表中删除服务。以下是我的做法:
执行Regedit或Regedt32 打开注册表项“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services” 寻找要删除的服务并删除它。您可以查看这些键来了解服务正在使用哪些文件,并在必要时删除它们。
通过命令窗口删除Windows服务
您也可以使用命令提示符删除服务,如下所示:
sc删除
还可以使用以下命令创建服务
sc create "MorganTechService" binpath= "C:\Program Files\MorganTechSPace\myservice.exe"
注意:您可能必须重新启动系统才能在服务管理器中更新列表。