CIM Studio を使用した IIS 7.0 WMI プロバイダーの確認
発行日 : 2007 年 12 月 10 日 (作業者 : IIS Team(英語))
更新日 : 2008 年 3 月 19 日 (作業者 : IIS Team(英語))
はじめに
このドキュメントでは、WMI 名前空間を調査するためのビジュアル インターフェイスを提供するツールである WMI CIM Studio を紹介します。ここでは、新しい IIS 7.0 の WebAdministration 名前空間を使用して、名前空間内のクラスを列挙する方法、クラスのプロパティやメソッドを参照する方法、"restriction" といった特定の語によってクラスやプロパティで検索する方法など、さまざまな操作方法を学びます。どの操作でもスクリプトの記述は不要です。
WMI で作業を行う前に、まず名前空間に接続する必要があります。このドキュメントの最初のセクションでは、CIM Studio をダウンロードして開く方法、すべての名前空間を列挙する方法、および特定の名前空間に接続する方法について説明します。
次のセクションでは、名前空間内のクラスを調べてプロパティやメソッドを参照する方法、およびプロパティやメソッドのメタデータ (プロパティが読み取り専用か読み取り/書き込みかなど) を参照する方法について説明します。最後に、オブジェクトのインスタンスを取得し、プロパティの設定、メソッドの実行といった操作を行ないます。CIM Studio を使用すると、WMI を簡単かつビジュアル的に操作できます。
開始する前に
IIS 7.0 のインストール
このドキュメントの手順を実行するには、IIS 7.0 をインストールする必要があります。https://localhost を参照して IIS の既定のページが表示される場合は、IIS 7.0 が既にインストールされています。IIS 7.0 がインストールされていない場合は、「Installing IIS 7.0 on Windows Vista」のインストール手順を参照してください。
WMI プロバイダーのインストール
[管理ツール] (または [Web 管理ツール]) で [IIS 管理スクリプトおよびツール] コンポーネントを選択して、IIS 7.0 WMI プロバイダーをインストールします。Windows Vista では、これは [Windows の機能] ダイアログ ボックスの [Internet Information Services] の下にあります。Windows Server® 2008 では、これは [サーバー マネージャー] の [Web サーバー (IIS)] の役割の下にあります。
(CIM Studio を含む) WMI ツールのインストール
開始する前に、Microsoft Download Center (英語) から WMI Administrative Tools をインストールします。
必要な特権とユーザー アカウント制御 (UAC)
WebAdministration WMI 名前空間に接続するには、管理者であることが必要です。つまり、次のいずれかでログインする必要があります。
- ビルトインの Administrator アカウント。
- Administrators グループのメンバーであり、ユーザー アカウント制御 (UAC) を無効にしている。
- Administrators グループのメンバーであり、UAC を有効にしている。
1 番目か 2 番目の場合は、この記事で取り上げられているアクセス許可の問題は発生しません。
3 番目の場合は、アクセス拒否エラーが発生します。この問題は、常に管理者としてコマンド プロンプトを開き、管理者特権のコマンド プロンプトから CIM Studio を起動することで回避できます。
管理者としてコマンド プロンプトを開くには、[スタート] ボタン、[すべてのプログラム]、[アクセサリ] の順にクリックし、[コマンド プロンプト] を右クリックして [管理者として実行] を選択します。
管理者特権のコマンド プロンプトから CIM Studio を起動するには
- 管理者としてコマンド プロンプトを開きます。
- **「%systemdrive%\Program Files\WMI Tools\studio.htm」**と入力して Enter キーを押します。
バックアップの作成
終了後にシステムを元の状態に復元できるように、開始する前に主要な IIS 7.0 構成ファイルをバックアップします。
- コマンド プロンプトを開きます。
- **「%windir%\system32\inetsrv\appcmd add backup IIS7_WMI_CIMStudioLab」**と入力します。
予期される出力 :
BACKUP object "IIS7_WMI_CIMStudioLab" added
- 終了したら、管理者としてコマンド プロンプトを開いて**「%windir%\system32\inetsrv\appcmd restore backup IIS7_WMI_CIMStudioLab」**と入力し、IIS 7.0 を元の状態に復元します。
予期される出力 :
Restored configuration from backup "IIS7_WMI_CIMStudioLab"
1. WebAdministration 名前空間への接続
[スタート] ボタンをクリックし、[すべてのプログラム]、[WMI Tools]、[WMI CIM Studio] の順にクリックします。
次のダイアログ ボックスが表示されたら、[Close] をクリックします。
黄色の情報バーが表示され、Internet Explorer によってアクティブ コンテンツがブロックされていると示された場合は、その情報バーを右クリックして [ブロックされているコンテンツを許可] オプションをクリックします。このファイルでアクティブ コンテンツを実行するかどうかを尋ねるセキュリティの警告が表示されたら、[はい] をクリックします。
注 : 今後このセキュリティ警告を表示しないようにするには、Internet Explorer 7 の右側の [ツール] ドロップダウン メニューから [インターネット オプション] を選択し、[詳細設定] タブで [セキュリティ] 設定までスクロール ダウンして、[マイ コンピューターのファイルでのアクティブ コンテンツの実行を許可する] チェック ボックスをオンにします。[OK] をクリックします。
CIM Studio が開くと、次のダイアログ ボックスが表示されます。このダイアログ ボックスを使用して、特定の WMI 名前空間に接続できます。次のスクリーン ショットで赤い線で囲まれた参照ボタンをクリックします。
参照ボタンをクリックすると、次の名前空間参照ダイアログ ボックスが表示されます。[Connect] をクリックします。
次のような CIM Studio のログイン ダイアログ ボックスが表示されます。[OK] をクリックします。
root 名前空間に接続され、ダイアログ ボックスには、root の下にある利用可能な名前空間のツリー ビューが表示されます。下部までスクロールして、新しい IIS 7.0 WMI 名前空間である WebAdministration を見つけます。[WebAdministration] フォルダーをダブルクリックして、この名前空間に接続します。
CIM Studio のログイン ダイアログ ボックスが再度表示されます。[OK] をクリックします。
WebAdministration 名前空間に正常に接続されると、CIM Studio ウィンドウの左側は次のスクリーン ショットのように表示されます。以下に示されているように、名前空間が "root\WebAdministration" であることを確認します。
2. クラスの調査
WebAdministration 名前空間内のクラスが、次のスクリーン ショットのように一覧表示されます。赤で囲まれたクラスは、WebAdministration プロバイダーの基本クラスです。赤で囲まれていない 2 つの下線 "__" で始まるクラスは、WebAdministration プロバイダーに特に関連のない WMI 標準クラスです。
Object クラスのツリーを展開します。次に、ConfiguredObject クラスのツリーを展開します。すると、次のように、Site や Application といった馴染みのある Web サーバー オブジェクトを含むツリー ビューが表示されます。これらのオブジェクトは WebAdministration WMI 名前空間の中心となるもので、これらに対する操作が主な作業になります。
Site オブジェクトを選択します。オブジェクトを選択すると、CIM Studio ウィンドウの右側のウィンドウにそのオブジェクトの情報が表示されます。次のスクリーン ショットは [Properties]タブを示しています。[Properties] タブには、Site のプロパティの名前、型、値が表示されます。ここで表示されているのは、Site のインスタンスではなく、Site オブジェクトの定義です。よって、[Value] 列の大部分には "<empty>" という文字列が表示されます (インスタンスについては後述します)。2 つの下線 "__" で始まるすべてのプロパティは標準 WMI クラスのプロパティです。今は WMI の基礎について学習しているため、これらについては触れません。
Site の Id プロパティが読み取り専用か読み取り/書き込みかをチェックするには、[Id] を右クリックし、[Property Qualifiers] を選択します。
次のダイアログは Id プロパティの "修飾子" を示しています。 修飾子とは、プロパティに関するメタデータです。read 修飾子および write 修飾子は、プロパティが読み取り可能または書き込み可能かどうかを示します。Id プロパティの場合は、read 修飾子と write 修飾子の両方の値が true になっているため、このプロパティは読み取り/書き込み可能であることがわかります。
- [Cancel] をクリックします。
- 次に示されているように、[Methods] タブをクリックして、Site のメソッドを表示します。
Create メソッドが受け取るパラメーターを確認するには、Create メソッドを右クリックして [Edit Method Parameters] を選択します。次のスクリーン ショットのように、Create メソッドのパラメーターの一覧を含むダイアログ ボックスが表示されます。メソッドの戻り値の型はダイアログ ボックスの下部に表示されます。このダイアログ ボックスでは、メソッド パラメーターを確認するだけにとどめます。どのメソッド パラメーターも変更しないように注意してください。
[Cancel] をクリックします。
右側のウィンドウの [Properties] タブをクリックして、Site のプロパティを再度表示します。Bindings プロパティの型は "array of object:BindingElement"、つまり BindingElement オブジェクトの配列になります。次に、BindingElement クラスを参照して、そのプロパティを調べます。
次のスクリーン ショットで赤い線で囲まれた検索ボタンをクリックします。
検索テキスト ボックスに**「BindingElement」と入力して [Go!] ボタンをクリックします。[Search results:]** ボックスに BindingElement のエントリが表示されます。
検索結果の BindingElement エントリをダブルクリックして、BindingElement のクラス定義を表示します。
3. オブジェクト インスタンスの取得
検索機能を使って Site クラスを再度検索します。次のスクリーン ショットで赤い線で囲まれている [Instances Of] ボタンをクリックして、Site オブジェクトの全インスタンスを表示します。
次のように、Site オブジェクトの全インスタンスが CIM Studio の右側のパネルに青色で表示されます。 Default Web Site インスタンスをダブルクリックして、この Site オブジェクトの詳細情報を表示します。
Default Web Site に関する情報が表示されます。右側のウィンドウの上部に Site の名前が表示され、[Property] タブの各プロパティには "<empty>" ではなく実際の値が表示されます。LogFile プロパティの [Value] 列には、実際の値ではなく [Object] というボタンが表示されます。この [Object] ボタンをクリックします。
[Object] ボタンをクリックすると、次のように LogFile オブジェクトのプロパティを表示するダイアログ ボックスが表示されます。これらのプロパティによって、ログの有効化/無効化、ログ ファイルの形式の定義、ログ ディレクトリの指定などを行うことができます。
LocalTimeRollover プロパティの [Value] フィールドの内側をクリックします。ドロップダウンをクリックしてこの値のオプションを表示し、"true" を選択します。このフィールドには "true" と表示され、プロパティが変更されたためにテキストは青色で表示されます。
[OK] をクリックします。LogFile.LocalTimeRollover プロパティが変更されたため、次のスクリーン ショットで赤い線で囲まれている保存ボタンが使用可能になります。保存ボタンをクリックします。
構成の変更をチェックするには、[スタート] ボタン、[ファイル名を指定して実行] の順にクリックし、「notepad %windir%\system32\inetsrv\applicationHost.config」と入力します。[編集] メニューから [検索] を選択します。**「localTimeRollover」**と入力して、新たに追加された構成を見つけます。次のような XML に似た構成が表示されます。localTimeRollover 構成プロパティは "true" に設定されているはずです。
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
</application>
<bindings>
<clear />
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
<logFile localTimeRollover="true" />
</site>
applicationHost.config ファイルを閉じます (メモ帳で変更内容を保存するかどうかを尋ねるメッセージが表示されたら、[いいえ] をクリックします)。次に Site のメソッドの 1 つを実行します。[Methods] タブをクリックし、GetState メソッドを右クリックして [Execute Method] を選択します。[Execute] ボタンをクリックします。
戻り値は 1 になります。これは "Started" を意味します。戻り値の意味はどうやって知ることができるのでしょうか。まず [Close] をクリックし、次に GetState メソッドを右クリックして [Method Qualifiers] を選択します。GetState メソッドのメタデータが表示されます。そこに表示される ValueMap と Values によって、戻り値から人間が判読できるデータへのマップが示されます。Values の行の [Array] ボタンをクリックすると、各種の状態を参照できます。
まとめ
このドキュメントでは、WMI 名前空間に接続する方法、クラスの検索方法、クラスのプロパティとメソッドを調べる方法、プロパティが読み取り/書き込みか読み取り専用かを判断する方法、メソッドのパラメーターを調べる方法、特定のオブジェクトのインスタンスを取得する方法、オブジェクト インスタンスのプロパティを対話的に変更する方法、および埋め込みオブジェクトのプロパティを参照する方法を学習しました。