WMIに関するメモ。
基本
目的
コンピュータの管理などをVBScriptや
Windows PowerShell、その他.NET言語など、様々なスクリプトライブラリより行えるようにするためのインストラクチャ仕様。
WMI接続を完了してしまえば、ローカルコンピュータだろうと、リモートコンピュータだろうと同じように管理・操作を行うことが可能になる仕組み。
この仕組みがあるため、逆に言えばWMI操作を行うための
ネットワーク要件は、同時にセキュリティホールになりかねないため、注意が必要となります。
アーキテクチャ
システム的なアーキテクチャについては、Microsoftの
WMIスクリプト入門ページの説明が非常に分かりやすい。
※画像はMicrosoftの掲載を引用。
DellやHPのサーバ製品をインストールすると、一緒にWMIプロバイダサポートが一緒にインストールされます。
この機能を使うことで、WMIスクリプトでサーバの
ハードウェア管理機能にアクセスすることが可能になります。
ネットワーク要件
実際の利用
CIMリピジトリおよびWMIスキーマを調べる具体的な方法。
- wbemtest.exeを使う方法
- WMIコマンドライン(wmic.exe)を使う方法
- WMI CIM Studioを使う方法
実際に触ってみて一番簡単な方法は、WMI CIM Studioをインストールして使う方法。
ブラウザベースのため、若干使い勝手が悪いものの、名前空間の検索やオブジェクトの一覧表示などが簡単に行えます。
OSの情報や、ハードウェアの細かい情報などを知るためにはコマンドライン版のwmic.exeがかなり便利。
ただしコマンド数(エイリアス)が大量にあるため、事前にどのエイリアスでどの情報が拾えるのか調べておく必要があります。
WMIコマンドライン(wmic.exe)のメモ
wmic.exe オプション引数
とwmic.exeに続けてオプション引数を記述することで、コンソールに直接実行結果を表示できます。
wmic.exeを実行することで、対話モードに移ります。
この状態では、基本的に以下の構文により各プロパティを取得します。
> エイリアス コマンド [オプション]
(例)
ユーザアカウントの情報を取得する場合
> USERACCOUNT GET Caption,SID
で実行すると...
Caption SID
PC-D0905\Administrator S-1-5-21-1417661848-3639872836-3622143559-500
PC-D0905\Guest S-1-5-21-1417661848-3639872836-3622143559-501
といったように、ユーザアカウント(USERACCOUNT)の表示名(Caption)と、実際のSID(SID)を簡単に取得できます。
非常に強力。
詳細なユーザアカウント情報の検索・表示
(例)
USERACCOUNT WHERE Name="hoge" LIST FULL
(結果)
AccountType=512
Description=
Disabled=FALSE
Domain=MYPC
FullName=HOGE。
InstallDate=
LocalAccount=TRUE
Lockout=FALSE
Name=hoge
PasswordChangeable=TRUE
PasswordExpires=FALSE
PasswordRequired=FALSE
SID=S-1-5-21-1417661848-3639872836-3622143559-1000
SIDType=1
Status=OK
参考情報
最終更新:2009年11月01日 15:28