Instrumentation)を利用することがある。WMIのアクセスは簡単ではないし、機能も豊富なので、調査に時間がかかる。Creatorツールを利用すると、WMIを利用するスクリプトのテンプレートを簡単に自動生成できる。Management)の標準仕様に従ってマイクロソフトが実装したWindowsシステムを管理するためのインターフェイスである。WSHスクリプトなどから呼び出すことで、Windowsの管理などを実行できる。OSには、このWMIサービスが標準搭載されている。具体的には、CPU使用率やASP.NETの動作状況、各種I/Oやネットワーク・インターフェイスの状態などを確認し、設定することが可能だ。WMIは豊富な機能を持ち、メソッドやプロパティの数も膨大なので、スクリプトなどから利用するのは容易ではない。WMIのインターフェイスを利用してProcessorPerformanceの値を調査するWSHスクリプト(VBS)は以下のようになる(これは実際には、後述するツールで生成したもの)。objItem.ActiveNextNext詳しくは説明しないが、このスクリプトでは、複数のコンピュータ(TEST-SERVER01〜TEST-SERVER03)に対してWMIオブジェクトを取得し、ExecQueryメソッドで状態を取得している。スクリプトを作成するには、このようにWMIで利用できるメソッドやプロパティ、クエリ(問い合わせ)などについて精通する必要がある。v1.0」というツールをマイクロソフトが無償公開している。利用できるのは英語版のみだが、メッセージが英語であることを除けば、日本語環境でも問題なく利用できる。1.1以上をインストールしておけば利用できる。ツールとしての主な仕様は次のとおりである。Creatorは.zipファイルで提供されており、配布ファイルからWMICodeCreator.exeを任意のフォルダに展開すれば、インストール不要で利用できる。Creatorには、スクリプト作成を簡略化してくれるさまざまな機能がある。WSHの詳細については、関連記事を参照されたい。Creatorを以下のダウンロード・センターから入手したら、.zipファイルに含まれるWMICodeCreator.exeのみを任意のフォルダに配置しておく。Creatorを利用するには、ローカル・コンピュータ上のWMIサービスが起動している必要がある。リモートのコンピュータを対象としたスクリプトを作成する場合には、対象となるコンピュータのWMIサービスも起動している必要がある点に注意が必要だ。WMICodeCreator.exeを起動すると、初期化の後、次のような画面となる。Computer]でスクリプトのアクセス先コンピュータを選択する。WMIクラスからデータを検索するスクリプトを作成する場合に、このタブを選択する。WMIのメソッドを実行するスクリプトを作成する場合に、このタブを選択する。WMIのイベントを受け取るスクリプトを作成する場合に、このタブを選択する。WMIのクラスやメソッド、プロパティを調べる場合に、このタブを選択する。Creatorも幅広い機能をサポートしている。具体的には、(1)クエリでWMIが持っているデータを取得する、(2)WMIのメソッドを実行する、(3)WMIのイベントを取得するスクリプトを作成できる。WMIの幅広い機能を調べる辞書的な使い方もできる。Creatorを実行しているコンピュータのWMI名前空間に基づいて動作するため、スクリプトでの操作対象がリモートのコンピュータの場合、環境の違いから、必ずしもサポートされない選択が可能になる場合があるので注意すること。ここでは例として、豊富な機能の中から、リモートの複数コンピュータでCPUがアクティブかどうかを調べるスクリプトを生成してみる。Computersに変更する。Computer]を選択する。Computers]を選択する。Computers]を選択すると、次のようなダイアログが表示されるので、対象となるコンピュータ名を入力しておく。リモートのコンピュータを指定する複数台のリモートのコンピュータを対象としたスクリプトを作成する場合は、表示されたダイアログのフォームに改行区切りでコンピュータ名を記述する。次に[Namespace]のリストで「root\WMI」を選択する。名前空間を指定する[Namespace]の項目は、筆者の環境ではデフォルトだと「root\CIMV2」になっている。ここでは、「root\WMI」を選択する。UNIXを実行している環境では「root\SFUAdmin」という名前空間が選択できるようになる。実際の作業では、必要な名前空間から利用できるプロパティやメソッドを選択していけばよい。次に、選択した「root\WMI」名前空間にあるクラスから「ProcessorPerformance」を選択する。クラスを選択する筆者の環境でroot\WMI名前空間を選択すると、自動的に836個のクラスが検索された。検索されたクラスが反映されたプルダウン・メニューからProcessorPerformanceクラスを選択する。すると、プロパティが14個見つかるので、そこから「Active」を選択するとスクリプトのソースコードが自動的に生成される。Studioを使ってほかのコードの一部として使ったり、テスト実行して結果を確認したりできる。プロパティを選択するプロパティから「Active」を選択すると、ソースコードが自動的に生成される。Studioを使ってほかのコードの一部として使ったり、テスト実行して結果を確認したりできる。[Active]を選択する。Activeプロパティが持つ値を検索する。選択を変更してもソースコードが変化しない場合もあるが、クラスやプロパティにより状況は異なる。プロパティを選択した段階で、ソースコードが自動的に生成される。リモートのコンピュータ名などがすでに埋め込まれていることが分かる。ここをクリックするとコマンド・プロンプトのウィンドウが開き、スクリプトが実行される。Creatorを利用すれば、ヘルプの検索作業を減らし、つまらない入力ミスを大幅に減らして、スクリプト作成を効率化できる。WMIを利用するスクリプトを作成するときには、ぜひ利用してみるとよいだろう。より自動抽出したものです。(2017/7/21)キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。