WMIC.EXE Windowsコマンドラインツール
WMIC.EXEは、Windows XP以降のWinodws OSに付属しているコマンドライン ツールで、WMIが管理する情報へのアクセスができます。WMIC.EXEを初めて実行すると「.mofファイル」がコンパイルされデータベース(CIM レポジトリ)に格納されます。.mofファイルは、Managed Object Formatの略で、システム管理情報のクラスやインスタンスなど、定義済みオブジェクトが記述されたテキストファイルです。WMIクラスがわかっていれば、WMIC.EXEにより、インスタンスを指定してプロパティを取得するか、または定義済みのメソッドを呼び出すことができます。
WMIC.EXEの使用例
WMIC.EXEの使用例を以下に示します。コマンドプロンプトを起動し、「WMIC」と入力し [Enter]キーを押します。WMIC.EXEを始めて起動した場合には、CIMリポジトリの構成が行われます。その後、WMICのプロンプト(wmic:root¥cli)が表示されます。先頭の「wmic:」はWMIC.EXEが実行中であることを表し、「root¥cli」は WMIC の既定の役割を表します。
「/?」と入力し、[Enter]キーを押します。ヘルプが表示されます。
WMIC.EXEのグローバルスイッチ
WMIC.EXEのグローバルスイッチでは名前空間(root¥cimv2など)やユーザー、パスワードなどが指定できます。
- グローバルスイッチ名= /NAMESPACE
エイリアスが操作する名前空間のパスです。
- グローバルスイッチ名= /ROLE
エイリアスの定義を含む役割のパスです。
- グローバルスイッチ名= /NODE
エイリアスが操作するサーバーです。
- グローバルスイッチ名= /IMPLEVEL
クライアントの偽装レベルです。
- グローバルスイッチ名= /AUTHLEVEL
クライアントの認証レベルです。
- グローバルスイッチ名= /LOCALE
クライアントが使用する必要がる言語 ID です。
- グローバルスイッチ名= /PRIVILEGES
特権のすべてを有効または無効にします。
- グローバルスイッチ名= /TRACE
デバッグ情報を標準エラー出力(stderr)に出力します。
- グローバルスイッチ名= /RECORD
入力コマンドと出力のすべてをログに記録します。
- グローバルスイッチ名= /INTERACTIVE
対話モードを設定またはリセットします。
- グローバルスイッチ名= /FAILFAST
FailFast モードを設定またはリセットします。
- グローバルスイッチ名= /USER
セッションの間使用するユーザーです。
- グローバルスイッチ名= /PASSWORD
セッション ログオンに使用されるパスワードです。
- グローバルスイッチ名= /OUTPUT
出力リダイレクトのモードを指定します。
- グローバルスイッチ名= /APPEND
出力リダイレクトを指定します。
- グローバルスイッチ名= /AGGREGATE
集合体モードを設定またはリセットします。
- グローバルスイッチ名= /?[:]
使用方法の情報です。
WMICのエイリアス
WMIC.EXEのエイリアスは、WMIプロバイダが提供するWMIデータを、WMI固有の概念を理解していなくても利用可能にするための「別名」です。WMIC.EXEではエイリアスなしに、WMI データの取得やWMIクラスが提供するメソッドを実行することもできます。現在のユーザーが利用可能なエイリアスは、「WMIC /?」と入力すると表示できます。
- エイリアス名= ALIAS
ローカル システムのエイリアス ボリュームにアクセスします。
- エイリアス名= BASEBOARD
ベース ボード (マザーボードまたはシステム ボード) の管理です。
- エイリアス名= BIOS
基本入出力 (BIOS) 管理です。
- エイリアス名= BOOTCONFIG
ブート構成管理です。
- エイリアス名= CDROM
CD-ROM 管理です。
- エイリアス名= COMPUTERSYSTEM
コンピュータ システム管理です。
- エイリアス名= CPU
CPU 管理です。
- エイリアス名= CSPRODUCT
SMBIOS からのコンピュータ システム製品情報です。
- エイリアス名= DATAFILE
データ ファイル管理です。
- エイリアス名= DCOMAPP
DCOM アプリケーションの管理です。
- エイリアス名= DESKTOP
ユーザーのデスクトップ管理です。
- エイリアス名= DESKTOPMONITOR
デスクトップ モニタの管理です。
- エイリアス名= DEVICEMEMORYADDRESS
デバイス メモリ アドレスの管理です。
- エイリアス名= DISKDRIVE
物理ディスク ドライブの管理です。
- エイリアス名= DISKQUOTA
NTFS ボリュームのディスク領域の使用です。
- エイリアス名= DMACHANNEL
ダイレクト メモリ アクセス (DMA) チャンネル管理です。
- エイリアス名= ENVIRONMENT
システム環境設定の管理です。
- エイリアス名= FSDIR
ファイル システム ディレクトリ エントリの管理です。
- エイリアス名= GROUP
グループ アカウントの管理です。
- エイリアス名= IDECONTROLLER
IDE コントローラ管理です。
- エイリアス名= IRQ
割り込み要求 (IRQ) の管理です。
- エイリアス名= JOB
スケジュール サービスを使用してスケジュールされたジョブへのアクセスを提供します。
- エイリアス名= LOADORDER
実行依存関係を定義するシステム サービスの管理です。
- エイリアス名= LOGICALDISK
ローカル記憶装置管理です。
- エイリアス名= LOGON
ログオン セッションです。
- エイリアス名= MEMCACHE
キャッシュ メモリ管理です。
- エイリアス名= MEMLOGICAL
システム メモリの管理です。
- エイリアス名= MEMPHYSICAL
コンピュータ システムの物理メモリの管理です。
- エイリアス名= NETCLIENT
ネットワーク クライアント管理です。
- エイリアス名= NETLOGIN
ネットワーク ログイン情報 (特定のユーザーの) の管理です。
- エイリアス名= NETPROTOCOL
プロトコル (およびそのネットワーク特性) 管理です。
- エイリアス名= NETUSE
アクティブ状態のネットワーク管理です。
- エイリアス名= NIC
ネットワーク インターフェイス コントローラ (NIC) の管理です。
- エイリアス名= NICCONFIG
ネットワーク アダプタの管理です。
- エイリアス名= NTDOMAIN
NT ドメイン管理です。
- エイリアス名= NTEVENT
NT イベント ログのエントリです。
- エイリアス名= NTEVENTLOG
NT イベント ログ ファイルの管理です。
- エイリアス名= ONBOARDDEVICE
マザーボード (システム ボード) にビルトインされている共通アダプタ デバイスの管理です。
- エイリアス名= OS
インストールされたオペレーティング システムの管理です。
- エイリアス名= PAGEFILE
スワップされている仮想メモリ ファイルの管理です。
- エイリアス名= PAGEFILESET
ページ ファイル設定管理です。
- エイリアス名= PARTITION
物理ディスクのパーティションされた領域の管理です。
- エイリアス名= PORT
I/O ポート 管理です。
- エイリアス名= PORTCONNECTOR
物理接続ポートの管理です。
- エイリアス名= PRINTER
プリンタ デバイスの管理です。
- エイリアス名= PRINTERCONFIG
プリンタ デバイス構成の管理です。
- エイリアス名= PRINTJOB
印刷ジョブの管理です。
- エイリアス名= PROCESS
処理管理です。
- エイリアス名= PRODUCT
インストール パッケージ タスクの管理です。
- エイリアス名= QFE
QFE (Quick Fix Engineering) です。
- エイリアス名= QUOTASETTING
ボリュームのディスク クォータの設定情報です。
- エイリアス名= RECOVEROS
オペレーティング システムにエラーが発生するときにメモリから収集される情報です。
- エイリアス名= REGISTRY
コンピュータ システムのレジストリの管理です。
- エイリアス名= SCSICONTROLLER
SCSI コントローラ管理です。
- エイリアス名= SERVER
サーバー情報の管理です。
- エイリアス名= SERVICE
Windowsサービス アプリケーションの管理です。
- エイリアス名= SHARE
共有リソース管理です。
- エイリアス名= SOFTWAREELEMENT
システムにインストールされているソフトウェア製品の要素の管理です。
- エイリアス名= SOFTWAREFEATURE
ソフトウェア要素のソフトウェア製品サブセットの管理です。
- エイリアス名= SOUNDDEV
サウンド デバイス管理です。
- エイリアス名= STARTUP
ユーザーがコンピュータ システムにログオンするときに自動的に実行するコマンドの管理です。
- エイリアス名= SYSACCOUNT
システム アカウント管理です。
- エイリアス名= SYSDRIVER
基本サービスのシステム ドライバの管理です。
- エイリアス名= SYSTEMENCLOSURE
物理的システム格納装置管理です。
- エイリアス名= SYSTEMSLOT
ポート、マザーボード スロットと周辺機器、専用接続ポイントを含む物理的接続ポイントの管理です。
- エイリアス名= TAPEDRIVE
テープ ドライブ管理です。
- エイリアス名= TEMPERATURE
温度センサー (電気温度計) のデータ管理です。
- エイリアス名= TIMEZONE
タイム ゾーン データ管理です。
- エイリアス名= UPS
無停電電源装置 (UPS) の管理です。
- エイリアス名= USERACCOUNT
ユーザー アカウント管理です。
- エイリアス名= VOLTAGE
電圧センサー (電気電圧計) のデータ管理です。
- エイリアス名= VOLUMEQUOTASETTING
ディスク クォータ設定を特定のディスク領域に関連付けます。
- エイリアス名= WMISET
WMI サービスの操作パラメータ管理です。
プロセスIDが300以上のプロセスを抽出する例
「process where (processid>300) list brief」と入力し、[Enter]キーを押します。このコマンドでは、コンピュータ上のプロセスID(ProcessID)が300より大きいプロセスをすべてリストアップし、そのプロセスに関する最小限の情報のみをリストしています。「process」はエイリアスで、エイリアスに続いてSQL文のwhere句を指定し、フィルタリングをおこなっています。
WMIC.EXEの終了操作
「quit」と入力し、[Enter]キーを押します。WMIC.EXEが終了します。
イベントログを参照する例
実際のシステム管理に役立ちそうな「WMICでイベントログ参照」についても説明します。イベントログは、WMIのWin32_NTLogEventクラスにあります。WMIC.EXEのエイリアスでは「NTEVENT」で定義されています。Win32_NTLogEventクラスには、たくさんプロパティがあるので何を出力するかですが...まずは「list brief
」ですべてのプロパティを表示してみましょう。たくさんデータが表示されて唖然としないように、Where句で「Applicationログ かつ ソース名がUserenv」に絞って、実行してみましょう。
WMIC.EXE実行中は、コマンドプロンプトの「 | more」が使えないので、表示がたくさん流れて行ったかもしれませんが、落ち着いて最後の1セットを見ると
Category, CategoryString, EventCode, EventIdentifier, EventType, InsertionStrings, Logfile, Message, RecordNumber, SourceName, TimeGenerated, TimeWritten, Type, Userというプロパティがあることが解ります。これらのプロパティの内、必要そうな EventCode, InsertionStrings, TimeGenerated, Typeプロパティだけを getで指定して、もう一度、実行してみましょう。
Where句では プロパティ値の特定(例:logfile='Application')だけでなく、イベント生成時刻の範囲指定などもできます。表示するプロパティの指定は get, listが指定でき 前述のように「プロパティが解らないときは とりあえず list brief」してから 「get で必要なプロパティだけを選択」するとよいでしょう。この例では WMIC.EXEのエイリアス「NTEVENT」を使用しましたので このエイリアスの指定方法については「NTEVENT /?」を実行すれば、表示されます。