作成者: IIS チーム
はじめに
このドキュメントでは、WMI 名前空間を探索するためのビジュアル インターフェイスを提供するツールである WMI CIM Studio について説明します。 IIS の "WebAdministration" 名前空間を使用して、名前空間内のクラスを列挙する、クラスのプロパティとメソッドを表示する、"restriction" などの特定の単語のクラスとプロパティを検索するなど、これらすべてをスクリプトを 1 つも記述せずに行う方法について説明します。
WMI で何かを行うには、まず名前空間に接続する必要があります。 このドキュメントの最初のセクションでは、CIM Studio をダウンロードして開き、すべての名前空間を列挙し、特定の名前空間に接続する方法について説明します。
このドキュメントの 2 番目の部分では、名前空間内のクラスのプロパティとメソッドを表示してクラスを探索する方法と、プロパティが読み取り専用か読み取り/書き込みかなどのプロパティ/メソッド メタデータを確認する方法を示します。 最後に、プロパティを設定してメソッドを実行することで、オブジェクト インスタンスを取得し、それらを操作します。 WMI を画像付きで分かりやすく説明します。
開始前の準備
IIS のインストール
このドキュメントの手順を完了するには、IIS 7.0 以降をインストールする必要があります。 http://localhost
を参照すると、標準の IIS "Under Construction" ページが表示される場合は、IIS がインストールされています。 IIS がインストールされていない場合、「Windows Vista への IIS のインストール」でインストール手順を参照してください。
WMI プロバイダーのインストール
[管理ツール] (または Web 管理ツール) の下にある [IIS 管理スクリプトとツール] コンポーネントを選択して、IIS WMI プロバイダーをインストールします。 Windows Vista では、これは [Windows の機能] ダイアログの [インターネット インフォメーション サービス]にあります。 Windows Server® 2008 では、これはサーバー マネージャーの Web サーバー (IIS) 役割の下にあります。
WMI ツールのインストール (CIM Studio を含む)
開始する前に、WMI Tools スイートをインストールします。
必要な特権とユーザー アカウント制御 (UAC)
WebAdministration WMI 名前空間に接続するには、管理者である必要があります。 これは、次のユーザーとしてログインしていることを意味します。
- Longhorn サーバーのビルトイン Administrator アカウント
- Administrators グループのメンバーであり、ユーザー アカウント制御 (UAC) を無効にしている
- Administrators グループのメンバーで UAC が有効になっている
1 番目または 2 番目の状況では、この記事でアクセス許可の問題が発生することはありません。
3 番目の状況では、「アクセスが拒否されました」のエラーが発生します。 これらの問題を回避するには、常にコマンド プロンプトを Administrator として開き、管理者特権でのコマンド プロンプトから CIM Studio を起動します。
Administrator としてコマンド プロンプトを開くには、[スタート]、[すべてのプログラム]、[アクセサリ] の順にクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行] をクリックします。
管理者特権でのコマンド プロンプトから CIM Studio を起動するには、次のようにします。
- 管理者としてコマンド プロンプトを開きます。
- 「
%systemdrive%\Program Files\WMI Tools\studio.htm
」と入力し、Enter キーを押します
バックアップを作成する
開始する前に主要な IIS 構成ファイルをバックアップして、完了後にシステムを元の状態に復元できるようにします。
- コマンド プロンプトを開きます。
- 「
%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 を元の状態に復元します。
想定される出力:
Restored configuration from backup "IIS7_WMI_CIMStudioLab"
1.WebAdministration 名前空間に接続する
[スタート]、[すべてのプログラム]、[WMI ツール] の順にクリックし、[WMI CIM Studio] をクリックします。
次のダイアログが表示されたら、[閉じる] をクリックします。
黄色の情報バーが、Internet Explorer がアクティブ コンテンツをブロックしていることを示している場合は、情報バーを右クリックし、[ブロックされたコンテンツを許可...] オプションをクリックします。 その後、このファイルにアクティブ コンテンツを実行させるかどうかを確認するセキュリティ警告が表示されます。[はい] をクリックします。
Note
今後、このセキュリティ警告を回避するには、Internet Explorer 7 の右側にある [ツール] ドロップダウン メニューをクリックし、[インターネット オプション] を選択します。[詳細設定] タブをクリックし、[セキュリティ設定] まで下にスクロールして、[マイ コンピューターのファイルでのアクティブ コンテンツの実行を許可する] を有効にします。 OK をクリックします。
CIM Studio が開くと、以下のダイアログが表示されます。 このダイアログにより、特定の WMI 名前空間に接続できます。 下の赤で囲まれている参照ボタンをクリックします。
参照ボタンをクリックすると、以下の名前空間参照ダイアログが表示されます。 接続ボタンをクリックします。
CIM Studio により、下に示すログイン ダイアログが表示されます。 OK をクリックします。
このダイアログでは、root 名前空間に接続した後、"root" の下に使用可能な名前空間のツリー ビューが表示されます。 一番下までスクロールすると、新しい IIS WMI 名前空間である "WebAdministration" があります。 WebAdministration フォルダー アイコンをダブルクリックして名前空間に接続します。
CIM Studio によってログイン ダイアログが再び表示されます。 OK をクリックします。
WebAdministration 名前空間に正常に接続すると、CIM Studio ウィンドウの左側は下のスクリーンショットのようになります。 下に示すように、名前空間の名前が "root\WebAdministration" であることを確認します。
2.クラスを探索する
WebAdministration 名前空間のクラスの一覧は、下のスクリーンショットのようになります。 赤で囲まれたクラスは、WebAdministration プロバイダーの基底クラスです。囲まれておらず、二重のアンダースコア "__" で始まるクラスは、WebAdministration プロバイダーに特に関連しない WMI 標準クラスです。
Object クラスの下のツリーを展開します。 ConfiguredObject クラスの下のツリーを展開します。 下に示すように、Site や Application などの使い慣れた Web サーバー オブジェクトを含むツリー ビューが表示されます。 これらのオブジェクトは、WebAdministration WMI 名前空間の中心となるものであり、ほとんどの場合、これらのオブジェクトの操作に時間を費やします。
Site オブジェクトを選択します。 オブジェクトを選択すると、CIM Studio ウィンドウの右側のペインにそのオブジェクトに関する情報が表示されます。 下のスクリーンショットは、[プロパティ] タブを示しています。[プロパティ] タブには、Site のプロパティの名前、その型、および値が表示されます。 値列には、ほとんどが "<空>" の文字列が含まれています。これは、Site のインスタンスではなく、Site オブジェクトの定義を調べているためです (後でインスタンスを見ています)。 二重のアンダースコア "__" で始まるすべてのプロパティは標準 WMI クラスのプロパティであり、WMI の基本を学習している間は無視してかまいません。
Site の Id プロパティが読み取り専用か、読み取り/書き込みであるかを確認するには、[Id] を右クリックし、[プロパティ修飾子] を選択します。
下のダイアログは、Id プロパティの "修飾子" を示しています。 修飾子は、プロパティに関するメタデータです。 "read" および "write" の各修飾子は、プロパティを読み取りまたは書き込みできるかどうかを表します。Id プロパティの read と write 修飾子の両方の 値が true であるため、このプロパティは読み取り/書き込みです。
- [キャンセル] ボタンをクリックします。
- [メソッド] タブをクリックして、下に示すように Site のメソッドを表示します。
Create メソッドが受け取るパラメーターを確認するには、Create メソッドを右クリックし、[Edit Method Parameters] (メソッドのパラメーターを編集する) を選択します。 このメニュー項目は、下に示すように、Create メソッドのパラメーターの一覧を含むダイアログ ボックスを起動します。 メソッドの戻り値の型は、ダイアログの下部で指定されています。 メソッドのパラメーターを変更しないように注意してください。このダイアログは、メソッドのパラメーターを表示するためにのみ使用してください。
[キャンセル] ボタンをクリックします。
右側のウィンドウの [プロパティ] タブをクリックして、Site のプロパティをもう一度確認します。 Bindings プロパティの型は "array of object:BindingElement" です。つまり、BindingElement オブジェクトの配列です。 次に、BindingElement クラスを見て、BindingElement に含まれるプロパティを確認します。
下の赤で囲まれている検索ボタンをクリックします。
検索テキスト ボックスに「BindingElement」と入力し、[Go!] (移動) ボタンをクリックします。 "検索結果:" テキスト ボックスには、BindingElement という名前のエントリが表示されます。
検索結果の BindingElement エントリをダブルクリックして、BindingElement クラス定義に移動します。
3.オブジェクト インスタンスを取得する
検索を使用して、"Site" クラスをもう一度見つけます。 下の赤い丸で囲まれているインスタンスボタンをクリックすると、Site オブジェクトのすべてのインスタンスが表示されます。
Site オブジェクトのすべてのインスタンスは、次に示すように CIM Studio の右側のパネルに青いテキストで表示されます。 Default Web Site インスタンスをダブルクリックすると、その Site オブジェクトに関する詳細情報が表示されます。
CIM Studio に Default Web Site に関する情報が表示されます。 右側のウィンドウの上部に Site の名前が表示され、[プロパティ] タブのプロパティには "<空>" ではなく実際の値が表示されます。 "LogFile" プロパティの [値] 列には、実際の値ではなく、Object というラベルが付いたボタンがあります。 この [Object] ボタンをクリックします。
次に示すように、[Object] ボタンをクリックすると、LogFile オブジェクトのプロパティを示すダイアログが起動します。 これらのプロパティは、ログ記録の有効化/無効化、ログ ファイルの形式の定義、ログ ディレクトリの指定などを行います。
LocalTimeRollover プロパティの [値] フィールド内をクリックします。 ドロップダウンをクリックしてこの値のオプションを表示し、[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 つを実行します。 [メソッド] タブをクリックし、GetState メソッドを右クリックして、[メソッドの実行] を選択します。 [実行] ボタンをクリックします。
戻り値は 1 ("Started") です。 確認するにはどうすればよいでしょうか。 閉じるをクリックします。 GetState メソッドを右クリックし、[メソッド修飾子...] を選択します。 これにより、戻り値が人間が判読できるデータにどのようにマップされるかを記述する ValueMap や Values など、GetState メソッドのメタデータが表示されます。 [Values] 行の [Array] ボタンをクリックすると、さまざまな状態が表示されます。
まとめ
このドキュメントでは、WMI 名前空間に接続する方法、クラスを検索する方法、クラスのプロパティとメソッドを検出する方法、プロパティが読み取り/書き込みまたは読み取り専用のどちらかを判断する方法、メソッドのパラメーターを検索する方法、特定のオブジェクトのインスタンスを取得する方法、オブジェクト インスタンスのプロパティを対話的に変更する方法、埋め込みオブジェクトのプロパティを表示する方法について説明しました。