用vbs實(shí)現(xiàn)禁用服務(wù)
問:
您好,腳本專家!如何禁用服務(wù)?
-- DS
答:
您好,DS。您知道嗎,腳本專家似乎無意中發(fā)現(xiàn)了一個(gè)好主意。在上期專欄中,我們向大家介紹了如何禁用 LMHosts 文件。今天,我們將向大家介紹如何禁用服務(wù)。如果我們這樣繼續(xù)下去的話,不久,我們便可將如何禁用計(jì)算機(jī)上的一切介紹給大家。請想象一下:不再有網(wǎng)絡(luò)問題,不再有客戶服務(wù)中心呼叫,不再有用戶覆蓋了不應(yīng)覆蓋的文件。我們所要做的就是禁用一切,從而所有這些問題都將消失!這可以是我們通往幸福時(shí)光的入場券。
不可否認(rèn),禁用計(jì)算機(jī)上的一切可能導(dǎo)致貴組織出現(xiàn)其他問題。但這只是需要由你們來處理的內(nèi)部事務(wù)。
此外,我們可能忙于數(shù)錢而無法幫助您。
當(dāng)然,在鈔票開始滾滾而來之前,我們?nèi)圆坏貌痪帉懘藢?,我們?nèi)圆坏貌桓稁?。正因?yàn)槊鞔_這一點(diǎn),我們在下面提供了在計(jì)算機(jī)上禁用 Alerter 服務(wù)的腳本:
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 經(jīng)銷權(quán)都不會多開放一小時(shí)。
腳本開始并沒什么奇特之處:我們只是連接到本地計(jì)算機(jī)上的 WMI 服務(wù)(盡管我們也可以禁用遠(yuǎn)程計(jì)算機(jī)上的服務(wù))。然后,我們發(fā)出以下查詢,該查詢返回一個(gè)僅包含一項(xiàng)的集合:Alerter 服務(wù):
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name = 'Alerter'")
順便說一下,請確保包括了如上所示的 Where 子句。為什么?設(shè)想一下,假設(shè)您省略了 Where 子句。在這種情況下,您的集合將包含安裝在計(jì)算機(jī)上的所有服務(wù),那么,你的腳本將盡職盡責(zé)地試圖禁用每個(gè)服務(wù)。
您說對了:這通常不是什么好事。此外,腳本專家可能會控告您;畢竟,禁用計(jì)算機(jī)上的一切是我們的主意!
得到集合后,我們建立一個(gè) For Each 循環(huán)以遍歷該集合內(nèi)的所有項(xiàng)。(是的,我們知道:集合中只有一項(xiàng)。但我們?nèi)孕枋褂?nbsp;For Each 循環(huán)。)以下是棘手部分。您可以禁用運(yùn)行中的服務(wù);但是,該服務(wù)在停止運(yùn)行前實(shí)際并未被禁用。如果禁用運(yùn)行中的服務(wù),該服務(wù)會一如既往地繼續(xù)運(yùn)行;更改將在服務(wù)停止后才生效。
正因?yàn)槿绱?,我們使用下面這行代碼來查看 Alerter 服務(wù)是否正在運(yùn)行:
If objService.State = "Running" Then
如果該服務(wù)正在運(yùn)行,那么我們就調(diào)用 StopService() 方法來停止該服務(wù)。之后我們暫停 5 秒(5,000 毫秒);使得服務(wù)有時(shí)間在我們繼續(xù)操作以禁用它之前真正停止。我們就是照下面這樣做的:
objService.StopService()
Wscript.Sleep 5000
注意:為了使該示例腳本盡可能簡短,我們做了些手腳。我們假設(shè)您的服務(wù)僅處于“運(yùn)行”或“停止”狀態(tài)。實(shí)際上,服務(wù)還可能包含其他狀態(tài),最顯著地是“暫?!被颉袄^續(xù)”。要編寫一個(gè)更穩(wěn)妥的腳本,您或許還應(yīng)該檢查這些狀態(tài)(并采取相應(yīng)的措施)。但是,因?yàn)樵?nbsp;99.9% 情況下,服務(wù)都處于運(yùn)行或停止?fàn)顟B(tài),所以您通??梢允褂梦覀兘o出的腳本蒙混過去。
服務(wù)停止后,我們就可以使用下面這行代碼禁用它:
errReturnCode = objService.ChangeStartMode("Disabled")
如您所見,我們只是使用 ChangeStartMode 方法更改 StartMode 屬性的值。我們要禁用該服務(wù),所以我們將參數(shù)“Disabled”傳遞給 ChangeStartMode。我們還可以將 StartMode 設(shè)置為“Manual”或“Automatic”;這樣會將 StartMode 設(shè)置為“手動”或“自動”。
請記住,服務(wù)被停止并禁用后,將無法再啟動;重新啟動該服務(wù)的唯一方法是重新啟用它(通過將 StartMode 更改為“手動”或“自動”)。但是,我們會等到說服每個(gè)人禁用其計(jì)算機(jī)上的一切后,才介紹如何重新啟用這些東西。畢竟,我們也許能夠?qū)@些腳本收取雙倍的費(fèi)用。
上一篇:用vbs實(shí)現(xiàn)在啟動 Windows 資源管理器時(shí)打開特定文件夾
欄 目:vb
本文標(biāo)題:用vbs實(shí)現(xiàn)禁用服務(wù)
本文地址:http://mengdiqiu.com.cn/a1/vb/7919.html
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實(shí)例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實(shí)例說明
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子