彻底卸载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