strComputer = "." Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") Set colServiceList = objWMIService.ExecQuery _ ("Select * from Win32_Service where Name = 'Alerter'") For Each objService in colServiceList If objService.State = "Running" Then objService.StopService() Wscript.Sleep 5000 End If errReturnCode = objService.ChangeStartMode("Disabled") Next
如您所見,禁用服務并不需要很多代碼,并且所需的一小段代碼都是很基礎的代碼。不過,有一個棘手的部分,這就是我們為什么將花幾分鐘時間逐步向您介紹此腳本的原因。 除此以外,不管怎樣 Rolls Royce 經銷權都不會多開放一小時。 腳本開始并沒什么奇特之處:我們只是連接到本地計算機上的 WMI 服務(盡管我們也可以禁用遠程計算機上的服務)。然后,我們發出以下查詢,該查詢返回一個僅包含一項的集合:Alerter 服務: Set colServiceList = objWMIService.ExecQuery _ ("Select * from Win32_Service where Name = 'Alerter'") 順便說一下,請確保包括了如上所示的 Where 子句。為什么?設想一下,假設您省略了 Where 子句。在這種情況下,您的集合將包含安裝在計算機上的所有服務,那么,你的腳本將盡職盡責地試圖禁用每個服務。