如果文件不再存在,如何卸载Windows服务?

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)"]


有些人提到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 create"morgantechservice"binpath="c:Program Filesmorgantechspacemyservice.exe"

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


    如果你想使用一个工具,你可以使用过程黑客。

    创建服务的表单:

    Process Hacker Create Service

    要删除的服务的上下文菜单:

    氧化镁

    我发现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,然后卸载该程序。这有点复杂,但对我来说是一个特殊的例子。


    -Windows+ropen命令。

    -sc YourSeviceName此代码删除您的服务。

    -Uninstal"YourService Path"此代码卸载您的服务。


    我们发现,即使您运行sc_delete,注册表中也可能有一个条目为您的服务保留,因此重新安装服务会导致一组损坏的注册表条目(它们不匹配)。我们对regedit做了些什么,然后用手把这个剩余的条目去掉。

    >。注意:sc_删除后,ShipmunkService仍将显示!</P><P>然后您可以重新安装,您的服务将正常运行。祝你们好运,愿原力与你们同在。</P></p>
<p><center> <script src=


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

    命令: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