記得以前在‘刪除’這個動作上學到不少東西,今天又有了一次收穫。
還是從案例開始講。今天把想把StyleXP卸掉,因為我裝的這個版本out of date了,象往常一樣從添加刪除中點擊StyleXP-刪除 to end。可能就是因為舊版本的問題,我在卸載了StyleXP後探索服務管理器中依然‘豎立著它的身影’——服務名為StyleXPService,這可不是件好事。
之後我在登錄編輯程式中一陣狂掃,總算幹掉幾個StyleXP的項,然後通過快速註冊表生效——explorer死而複生法之後,我再次開啟服務管理員,它——讓我驚呆了,這個無賴竟然還在那裡——不可能的,它明明死了的——我是這麼想的,確實也是,因為這個服務已經不可能開得起來了——在卸載StyelXP之後就開不起來了,但服務管理員裡怎麼……
還是Internet幫的忙,我腦中閃過四個字"清除服務",用google一搜,答案差不多就都在了,我進入MS TechNet 刪除服務頁,得到如下資訊:
| 刪除服務 描述 刪除名為 DbService 的假定服務。 指令碼代碼 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colListOfServices = objWMIService.ExecQuery _ ("Select * from Win32_Service Where Name = 'DbService'") For Each objService in colListOfServices objService.StopService() objService.Delete() Next |
雖然才疏學淺,但我運氣比較好,因為我不知道怎麼用這個指令碼,只知道VBS的指令檔能直接運行,於是我把代碼copy到記事本,修改其中的"DbService"為"StyleXPService",儲存為.VBS檔案,雙擊運行,好像真是這麼回事兒,它執行了,服務管理員中的StyleXP消失了。
接著我又探索服務管理器中還有個MSTake也是無效服務,我也用這種方法把它清除掉了。
應該注意的是:有些服務名稱和服務的顯示名稱是不一樣的,而上面的代碼中應該填的是服務名稱,具體在服務屬性(雙擊開啟)中可以砍刀服務名稱和顯示名稱。
OK,總結完畢。
05.10.5補充:
後來砍刀網上有人說sc delete [servicename]命令也可以刪除服務,試了下,果然行,因為命令很容易記,建議還是用這個sc吧!
另外sc的常用功能,如服務啟動、停止(sc start [servicename]\sc stop [servicename])都比在 services.msc服務控制台中操作快得多,服務啟動和停止是瞬間完成的。
關於sc的其他功能請查看sc/?
(描述環境WindowsXP)