彻底卸载Windows Service

前言,我使用Quartz.net + quartz.config + quartz_jobs.xml 写了个Windows Service,使用如下bat脚本执行服务的安装,启动,暂停,卸载

@echo off
:菜单
cls
echo ============================================
echo                  BI数据抓取服务菜单
echo 1.安装     2.启动  3.停止        4.卸载
set /p 选择=请进入命令:
if %选择%==1 goto 安装
if %选择%==2 goto 启动
if %选择%==3 goto 停止
if %选择%==4 goto 卸载
:安装
echo 正在安装BI数据抓取服务...
sc create BICrawlService start= auto binPath= E:\XX\XXX\BIJobSchedule\BIJobSchedule\bin\Debug\BIJobSchedule.exe DisplayName= BI数据抓取服务
pause
goto 菜单
:启动
echo 正在启动BI数据抓取服务...
net start BICrawlService
pause
goto 菜单
:停止
echo 正在停止BI数据抓取服务...
net stop BICrawlService
pause
goto 菜单
:卸载
echo 正在卸载BI数据抓取服务...
sc delete BICrawlService
pause
goto 菜单

安装,启动,都成功,而且服务正常运行,但是当我直接选择卸载服务后, 发现Service仍在服务列表内,而且监控显示Service仍在正常运行,由此引出了Windows Service的彻底卸载方法

1. 根据网上资料,显示如下命令可直接卸载服务

Sc delete [service_name] //很明显,服务是删除的,但是列表内还是显示正常运行,此时对该服务做任何操作都会出现1062,1072之类的错误码

2. 删除注册表内容

Cmd下regedit;找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 找到你的Service服务的名字,然后把整个文件夹删掉,

但是我这边没找到对应的文件夹

3. 查找PID,根据PID强制杀掉进程

3.1. 关掉mmc.exe:

taskkill /F /IM mmc.exe

3.2. 查找服务的PID:

3.3. 执行kill命令:

taskkill /PID 1104 /f

如上,我电脑上的windows 服务,算是彻底清除干净了

参考:

http://www.cnblogs.com/Wolfmanlq/p/5872043.html

https://stackoverflow.com/questions/305037/sc-deleteservice-failed-1072#305075

时间: 2024-10-18 23:32:09

彻底卸载Windows Service的相关文章

C# 创建Windows Service

当我们需要一个程序长期运行,但是不需要界面显示时可以考虑使用Windows Service来实现.这篇博客将简单介绍一下如何创建一个Windows Service,安装/卸载Windows Service. 新建Windows Service项目: 删除自动生成的Service1.cs文件,新建WindowsService类,继承ServiceBase. class WindowsService : ServiceBase { public WindowsService() { this.Ser

【转载】用VS(c#)创建、调试windows service以及部署卸载

用VS(c#)创建.调试windows service以及部署卸载 同事问到windows service的东东,现在整理一下,用c#如何创建一个windows service,以及如何调试.部署.卸载. 一.创建windows service 1. 打开VS2008,新建一个Project, Project类型选择Visual C#-Windows,在Templates中选择Windows Service, 其他可以默认,点击OK. 2. 在Solution Explorer中会看到自动产生了

C# 远程服务器 安装、卸载 Windows 服务,读取远程注册表,关闭杀掉远程进程

这里安装windows服务我们用sc命令,这里需要远程服务器IP,服务名称.显示名称.描述以及执行文件,安装后需要验证服务是否安装成功,验证方法可以直接调用ServiceController来查询服务,也可以通过远程注册表来查找服务的执行文件:那么卸载文件我们也就用SC命令了,卸载后需要检测是否卸载成功,修改显示名称和描述也用sc命令.至于停止和启动Windows服务我们可以用sc命令也可以用ServiceController的API,当停止失败的时候我们会强制杀掉远程进程,在卸载windows

Windows service wrapper 初探

Windows 服务包装器(Windows service wrapper),用于把.exe文件注册为windows服务.比如把Nginx.exe注册为windows服务,这样做的好处是,每次启动nginx时不用在命令行中输入命令,而且可以随windows系统启动而启动.不用担心服务器意外重启,服务挂掉. github地址:https://github.com/kohsuke/winsw 下载地址:https://github.com/kohsuke/winsw/releases 目前(2017

windows Service

用c#中创建一个windows服务非常简单,与windows服务相关的类都在System.ServiceProcess命名空间下. 每个服务都需要继承自ServiceBase类,并重写相应的启动.暂停.停止等方法. windows服务的相关信息是存放与注册表中的,所以他可以在不需要用户登录的情况下自动运行,在c#中你不需要再直接向注册表中添加信息了,c#提供了服务安装类 ServiceProcessInstaller和ServiceInstaller来实现服务的安装. 首先,用vs创建一个win

安全模式下卸载windows installer打包的软件(转)

安全模式下卸载windows installer打包的软件 起因: 主机系统MAC,虚拟软件Parallels Desktop, 虚拟系统 Win 7. 今天在虚拟机WIN7里面安装了某个软件导致重启时蓝屏,大概是因为这个软件使用了某些驱动组件,而系统是虚拟机不兼容导致的. 蓝屏时不能操作,又无法像物理机一样使用F8进入安全模式,也不能重启,只能卡在蓝屏界面. 想到在蓝屏界面使用 control+option(alt) 呼出PD菜单,在操作中有一个停止,选择停止,然后重启,发现出来了熟悉的 安全

C#创建一个Windows Service

Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入. 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2)对Service重命名 将Service1重命名为你服务名称,这里我

C# 编写Windows Service(windows服务程序)

Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就能开始运行了,它必须有特定的启动方式.这些启动方式包括了自动启动和手动启动两种.对于自动启动的Windows服务程序,它们在Windows启动或是重启之后用户登录之前就开始执行了.只要你将相应的Windows服务程序注册到服务控制管理器(Service Control Manager)中,并将其启动

C#创建Windows Service(Windows 服务)基础教程

Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入. 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2)对Service重命名 将Service1重命名为你服务名称,这里我