VBScriptで、実行中のアプリケーションのプロセス一覧を取得する方法を解説します。
また、取得した情報をテキストに出力するバッチも公開したいと思います。
どんな情報が取得出来るの?
まず、どんな情報が取得出来るのかってことで、実際の実行結果を見てみます。
以下が、今回のスクリプトで取得出来る情報になります。
Name,ExecutablePath,Description System Idle Process,System Idle Process,0 System,System,4 Registry,Registry,92 smss.exe,smss.exe,348 csrss.exe,csrss.exe,444 csrss.exe,csrss.exe,524 wininit.exe,wininit.exe,532 ~~省略~~
取得出来る情報としては、タスクマネージャーのプロセス一覧で表示される情報と同様の内容になります。
サンプルソースコード
プロセス情報を取得するための、ソースコードになります。
こちらのサンプルですが、普通に実行すると、1プロセスずつメッセージボックスで表示されてしまいます。(100プロセス起動している場合、100回メッセージボックスが表示されます。)
実行方法は次項で説明していますので、そちらを参考にして下さい。
また、サンプルで取得する情報としては、プロセスの「名前」「説明」「プロセスID」です。
Option Explicit
' 宣言
Dim objSWbemLocator, objWMIService, objItem
' オブジェクトの作成
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
' プロセス情報の取得
Set objWMIService = objSWbemLocator.ConnectServer.ExecQuery("Select * From Win32_Process")
' ヘッダーの出力
WScript.Echo "Name,ExecutablePath,Description"
' プロセス情報の出力
For Each objItem In objWMIService
WScript.Echo objItem.Name _
& "," & objItem.Description _
& "," & objItem.ProcessId
Next
実行方法とテキストへの出力バッチ
ここでは、本スクリプトの使用方法を説明します。
前提として、本スクリプトの格納パス・ファイル名は下記とします。
- 格納パス:C:\ws\VBScript
- スクリプトファイル名:GetProcessList.vbs
コマンドから実行する
コマンドプロンプトを起動し、以下のコマンドを実行して下さい。
cd {格納パス} cscript //nologo {スクリプトファイル名}
コマンドでの実行例です。
c:\ws\VBScript>cd c:\ws\VBScript c:\ws\VBScript>cscript //nologo GetProcessList.vbs Name,ExecutablePath,Description System Idle Process,System Idle Process,0 System,System,4 Registry,Registry,92 smss.exe,smss.exe,348 ~~省略~~
コマンドから実行し、テキストに出力する
前項で説明したコマンドで本スクリプトを実行しつつ、実行結果をテキストファイルとして出力する方法です。
以下のコマンドを実行することで、実行結果が「ProcessList.txt」というファイル名で出力されます。
c:\ws\VBScript>cscript //nologo GetProcessList.vbs > ProcessList.txt
実行結果の出力バッチ
本スクリプトを実行し、取得したプロセス一覧をテキストファイルに出力するバッチです。
(前項で説明したコマンドをバッチ化しただけですが。。)
実行するVBScriptファイルが格納されているフォルダと同じフォルダに、
以下を「任意のファイル名.bat」として保存、実行して下さい。
正常に動作すれば、同じフォルダに「ProcessList.txt」が出力されます。
@echo off cscript //nologo .\GetProcessList.vbs > ProcessList.txt
スクリプトで使用している機能の解説
本スクリプトで使用している機能を説明しているリンク集になります。
ソースコード上にコメントを付けていますが、さらに深く理解したいって方は参考にして頂ければと思います。
コメント