如果服务文件不再存在,如何卸载.NET Windows服务?
我使用InstallUtil安装了.NET Windows服务.我已经删除了文件但忘了运行
InstallUtil /u
第一.因此该服务仍然列在服务MMC中.
我必须进入注册表吗?或者,还有更好的方法?
你至少有三个选择.我按照使用偏好的顺序展示了它们.
方法1 - 您可以使用Resource Kit中包含的SC工具(Sc.exe).(包含在Windows 7/8中)
打开命令提示符并输入
sc delete
工具帮助代码段如下:
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开发的传统工具.在当前的Window XP框中,这被方法1中描述的sc取代.
方法3 - 手动删除注册表项(请注意,这在Windows 7/8中适用)
Windows服务在以下注册表项下注册.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
在引用键下搜索具有服务名称的子键并将其删除.(您可能需要重新启动才能从"服务"列表中完全删除该服务)
在命令提示符下,使用Windows"sc.exe"实用程序.你会运行这样的东西:
sc delete
在Windows 8中使用"sc delete"的注意事项:
1)使用提升的权限打开CMD窗口.[Windows Key-X用于显示带有选项的菜单; 选择"命令提示符(管理员)".]
2)使用服务列表中的括号名称[例如,我使用"sc delete gupdate"时,在服务中,它显示为"Google Update(gupdate)"]
有人提到sc delete
答案.我就是这样做的,但是我花了一些时间才找到
参数.
该命令sc query type= service
(注意,格式非常特殊,"服务"之前的空间是必要的)将输出已安装的Windows服务列表,其中包含要与sc delete
命令一起使用的限定名称.
列表很长,因此您可以考虑将输出汇总到文本文件(即>> C:\test.txt
)然后搜索它.
的SERVICE_NAME
是使用一个sc delete
命令.
通过注册表删除Windows服务
如果您知道正确的路径,则很容易从注册表中删除服务.我是这样做的:
运行Regedit或Regedt32
转到注册表项"HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services"
查找要删除的服务并将其删除.您可以查看密钥以了解服务使用的文件,并删除它们(如有必要).
通过命令窗口删除Windows服务
或者,您也可以使用命令提示符并使用以下命令删除服务:
sc删除
您还可以使用以下命令创建服务
sc创建"MorganTechService"binpath ="C:\ Program Files\MorganTechSPace\myservice.exe"
注意:您可能必须重新引导系统才能在服务管理器中更新列表.
如果您希望使用工具,可以使用Process Hacker
表单来创建服务:
要删除它的服务上下文菜单:
我发现Process Hacker是一个比Windows自己的Taskmgr.exe管理Windows进程和服务更方便的工具.特别是在Windows XP上,您无法从任务管理器访问服务.