如何删除windows服务 CMD vbs+wmi删除windows服务

如何删除windows服务,今天做了个系统服务,但删除不了,按网上的注册表删除法不成,我自己的程序也删除不了,后来发现,原来可以这么删除:

1. DOS命令删除

开始菜单–>运行–>cmd–>SC delete 服务名

2. vbs+wmi删除

‘保存以下代码为DeleteService.vbs,把里面的那个服务名也改成你要删除的服务名,双击就可以了,这个适合与程序化实现。
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”)
Set colListOfServices = objWMIService.ExecQuery(“Select * from Win32_Service Where style=”COLOR: #ff0000″>服务名'”)
For Each objService in colListOfServices
    objService.StopService()
    objService.Delete()
Next

3. 特殊情况删除

如果一个服务删除了马上又自动建立了,说明后台有进程在监视、保护。需要先在进程管理器中杀掉相应的进程,或者启动后按F8,到安全模式下删除。

后记:柳永法今天做的这个服务是每天早7:00重启机器,为了便于测试起初设置的是服务自动启动然后重启时间设为了一秒,所以一登录系统就直接重启了,只能按F8进入安全模式先设置为禁止,这才发现原来安全模式也还有这好处。

 

引文来源  如何删除windows服务 CMD vbs+wmi删除windows服务 – 柳永法(yongfa365)’Blog

 

 

========================================================================

自用的一段代码:

willDelSrvName = inputbox(“Input will delete service name:”)
strComputer = “.”

Set objWMIService = GetObject(“winmgmts:{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”)
Set colListOfServices = objWMIService.ExecQuery(“Select * from Win32_Service Where Name = ‘” & willDelSrvName & “‘”)

msg = “”
For Each objService in colListOfServices
 objService.StopService()
 objService.Delete()
   
 msg = msg & “[” & objService.name & “],”
Next

if len(msg) > 0 then
 msgbox msg  & ” was deleted.”
else
 msgbox willDelSrvName & ” notfound.”
end if