VBScript

【VBScript】Windowsで開始中のサービスを取得して表示する方法【WMI】

開始中のWindowsサービスを取得して表示するVBScriptです。

このコードでは取得したサービスをメッセージで表示していますが、
ファイルを作ったりコンソールに出力させて他のファイルと連携させて使う方が有用だと思います。

WMIとは、
こちらの説明がわかりやすいと思います↓↓

WMI 【 Windows Management Instrumentation 】(IT用語辞典 e-Words)
WMIはコマンドラインツールやスクリプト言語などからWindowsの設定情報やコンピュータの状態などにアクセスするための標準仕様で、管理者がシステムの状態を把握したり、管理を自動化するスクリプトを記述する際に使われる。ネットワークを通じて他のコンピュータを管理することもでき、企業内ネットワークなどで複数のコンピュータを集中的・効率的に管理するのに役立つ。

使用例として、
私はこれを使ってOracleのDBサービスの状態を自動で取得・表示してくれるツールを作りました。

ソースコード

※そのまま取得すると大量のサービスが表示されるため、このコードでは「Adobe」から始まるものだけに絞っています。
それを変更する場合は「And Name Like 'Adobe%'」を外すなり、別なサービス名に変更して下さい!




Option Explicit

'WMIにて使用する各種オブジェクトを定義・生成する。
Dim ClassSet, Locator, Service
Dim wClass
Dim MesStr

'ローカルコンピュータに接続する。
Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
'クエリー条件を WQL にて指定する。停止を拾いたい場合は「State = Stopped」
Set ClassSet = Service.ExecQuery("Select * From Win32_Service Where State = 'Running' And Name Like 'Adobe%'")

'コレクションを解析する。
For Each wClass In ClassSet

    MesStr = MesStr & wClass.Caption & vbCrLf

Next

'メッセージボックス表示
MsgBox MesStr

'使用した各種オブジェクトを解放
Set ClassSet = Nothing
Set wClass = Nothing
Set Service = Nothing
Set Locator = Nothing

実行結果

-VBScript