VBS腳本 - 實現一鍵中止Oracle相關服務

自從安裝了Oracle數據庫後,我電腦的運行速度滿了不少。爲此我想了一個辦法,讓我在不須要使用Oracle數據庫的時候,能夠輕鬆地關掉Oracle相關服務。數據庫

我安裝的Oracle版本爲Oracle11g,與Oracle有關的服務以下圖所示:函數

這些服務包括:工具

一、Oracle ORCL VSS Writer Service(手動啓動)測試

二、OracleDBConsoleorcl(自動啓動)code

三、OracleJobSchedulerORCL(禁用)圖片

四、OracleMTSRecoveryService(自動啓動)ip

五、OracleOraDb11g_home1ClrAgent(手動)文檔

六、OracleOraDb11g_home1TNSListener(自動啓動)get

七、OracleServiceORCL(自動啓動)it

其中,須要咱們用腳本關閉的服務,都是開機自啓動且當前已啓動的服務,一共有四個(二、四、六、7)。

咱們可使用WQL查出這四個服務,逐一關閉便可。

VBS腳本(StopServiceLikeOracle.vbs)以下:

Set ServiceSet = GetObject("winmgmts:"). _
    ExecQuery("select * from Win32_Service where name like 'Oracle%' and started = true")

For Each Service In ServiceSet
    WScript.Echo "Deal with service: " & Service.Name
    RetVal = Service.StopService()
    If RetVal = 0 Then 
        WScript.Echo "Service stopped: " & Service.Name
    ElseIf RetVal = 5 Then 
        WScript.Echo "Service already stopped: " & Service.Name
    Else 
        WScript.Echo "Return value: " & RetVal
    End if
Next

其中Service下的StopService函數返回值,能夠參閱MSDN文檔:

https://msdn.microsoft.com/en-us/library/aa393673%28v=vs.85%29.aspx

調用這個VBS腳本的BAT腳本以下:

call C:\Users\Tsybius\Desktop\StopServiceLikeOracle\StopServiceLikeOracle.vbs
pause

注意要使用管理員身份調用此BAT腳本,不然會在關閉服務的時候觸發權限不足的錯誤。使用管理員身份調用BAT腳本時,裏面的VBS腳本地址,要寫絕對地址(或相對於System32目錄的相對地址)。

使用效果以下:

執行完畢後,能夠看到各服務都已中止(或在中止的過程當中,此時狀態列會顯示爲「中止」)

順便總結一下,在寫WQL查詢時,可使用Windows自帶的測試工具wbemtest.exe,步驟以下:

步驟1,在開始菜單中輸入wbemtest.exe,找到這個程序後打開改程序。

(限於圖片大小限制,上圖中省去了開始菜單中間大片的白色無內容區域)

步驟2,點擊【鏈接】按鈕,進入鏈接界面,再點擊【鏈接】

步驟3,鏈接成功後,點擊【查詢】按鈕,彈出查詢界面,在查詢界面中輸入查詢WQL語句,再點擊【應用】按鈕

步驟4,此時會彈出一個查詢結果頁面,顯示WQL語句的查詢結果

END

相關文章
相關標籤/搜索