How do I uninstall a Windows service if the files do not exist anymore?
如果服务文件不再存在,如何卸载.NET Windows服务?
我使用InstallUtil安装了.NET Windows服务。我已经删除了文件,但忘了运行
1 | InstallUtil /u |
第一。因此该服务仍然列在服务MMC中。
我必须去登记处吗?还是有更好的方法?
你至少有三个选择。我已经按照使用偏好的顺序展示了它们。
方法1-您可以使用资源工具包中包含的sc工具(sc.exe)。(随Windows 7/8提供)
打开命令提示并输入
1 | sc delete <service-name> |
工具帮助代码段如下:
1 2 3 4 5 | 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开发的传统工具。在当前的窗口xp框中,这被方法1中描述的sc所取代。
方法3-手动删除注册表项(请注意,这与Windows7/8相反)
Windows服务在以下注册表项下注册。
1 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services |
。
在"引用的密钥"下搜索服务名为的子密钥并将其删除。(您可能需要重新启动才能从服务列表中完全删除该服务)
在命令提示下,使用Windows"sc.exe"实用程序。您将运行类似这样的程序:
1 | sc delete <service-name> |
有关在Windows 8中使用"sc delete"的说明:
1)打开一个具有提升权限的命令窗口。[Windows key-x显示一个带有选项的菜单;选择"命令提示(管理)"。]2)在服务中使用列表中的附加名称[例如,我在服务中使用"sc delete gupdate"时,它读取"google update(gupdate)"]
有些人提到
命令
列表相当长,因此您可以考虑将输出管道传输到文本文件(即
通过注册表删除Windows服务
如果知道正确的路径,就很容易从注册表中删除服务。我是这样做的:
运行regedit或regedt32
转到注册表项"hkey_local_machine/system/currentcontrolset/services"
查找要删除的服务并将其删除。您可以查看这些键来了解服务正在使用的文件,并删除它们(如有必要)。
通过命令窗口删除Windows服务
或者,也可以使用命令提示符,并使用以下命令删除服务:
删除服务
您还可以使用以下命令创建服务
sc create"morgantechservice"binpath="c:Program Filesmorgantechspacemyservice.exe"
注意:您可能需要重新启动系统才能在服务管理器中更新列表。
如果你想使用一个工具,你可以使用过程黑客。
创建服务的表单:
。
要删除的服务的上下文菜单:
氧化镁
我发现ProcessHacker比Windows自己的taskmgr.exe更方便地管理Windows进程和服务。尤其是在WindowsXP上,您根本无法从任务管理器访问服务。
我需要重新安装我的Tomcat服务,这意味着首先要删除它。这对我很有用:
1 2 3 | Start a command prompt window using run as administrator sc query type= service >t.txt |
(编辑文件t.txt,搜索列表并找到Tomcat服务。它叫Tomcat7)
1 | sc delete Tomcat7 |
。
但是,查询命令第一次不工作,因为Tomcat服务没有运行。它似乎只列出正在运行的服务。我必须启动服务并再次运行查询命令。
您可以尝试运行autoruns,这样可以避免手工编辑注册表。当您没有所需的权限时,这尤其有用。
如果原始service.installLog和.installState文件仍在文件夹中,可以尝试重新安装可执行文件以替换这些文件,然后使用installUtil/u,然后卸载该程序。这有点复杂,但对我来说是一个特殊的例子。
我们发现,即使您运行
第一步:移动到您的服务所在的目录
命令:cd c:xxxyyyservice
第二步:输入以下命令
命令:c:windowsmicrosoft.netframeworkv4.0.30319installutil.exe service.exeu
这里service.exe是您的服务exe,并且u将卸载该服务。您将看到"卸载已完成"消息。
如果要安装服务,请在上面的命令中删除u,该命令将安装您的服务
您可以通过命令提示符卸载Windows服务,也只需编写这段命令
1 2 3 4 5 | 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 |
。