IIS 7.0 でメタベース互換性を使用する方法

公開日: 2007 年 11 月 22 日 (作業者: saad (英語))

更新日: 2008 年 3 月 12 日 (作業者: saad (英語))

はじめに

IIS 7.0 では、レガシー構成スクリプトおよびレガシー アプリケーションをこれまで同様実行できます。 プログラム インターフェイスによってメタベース システムを実現するオプションのセットアップ コンポーネントとして、Admin Base オブジェクト (ABO) と、ABO 上の ADSI および WMI プロバイダーがあります。 システムでは、ABO への呼び出しをインターセプトし、新しい構成システムにマップします。 データは applicationHost.config に保存されますが、ABO の呼び出し元に対しては、従来の構成構造のビューが表示されます。

この記事の内容:

  • 必要条件

  • ABO を使用したグローバル設定の作成

  • ABO を使用した仮想ディレクトリ設定の作成

  • まとめ

必要条件

  1. Internet Explorer で https://LocalHost にアクセスして、既定の "Under Construction" ページが表示されることを確認して、コンピューターに IIS がインストールされていることを確かめます。 IIS がインストールされていない場合は、セットアップ方法のトピックを参照して、インストール手順を確認してください。
  2. コンピューターの管理者特権を持っていることを確認します。ビルトイン Administrator アカウント以外のユーザーとしてログオンした場合は、既定で管理者特権がありません。このユーザーがコンピューター上のローカルの Administrators グループに追加されている場合も同様です (これは Windows Server® 2008 と IIS 7.0 の LUA と呼ばれる新しいセキュリティ機能ですが、ここでは説明しません)。 ビルトイン Administrator アカウントを使用してログオンするか、必要に応じて "runas" コマンド ライン ツールを使用して明示的にビルトイン Administrator としてアプリケーションを起動します。 たとえば、notepad.exe を起動する場合は、"runas /user:administrator notepad.exe" というコマンドを実行します。 Administrator アカウントのパスワードの入力を求めるメッセージが表示されます。 "runas /user:administrator cmd.exe" を実行して、コマンド ボックス シェルをあらかじめ昇格しておくと便利です。 このコマンド ボックスから実行するアプリケーションはすべて昇格されるため、"runas" 構文を省略できます。
  3. マスター構成ファイルをバックアップしてあることを確認します。 applicationHost.config を別のファイルにコピーするだけで、後で復元することができます。 applicationHost.config は、システム ディレクトリの inetsrv\ ディレクトリにあります。 この作業をするには、管理者である必要があります。前述の条件を参照してください。
  4. 作業を始める前に、環境が "クリーンな状態" であることを確認します。 前の実習で applicationHost.config ファイルに対して加えた変更は元に戻してください。 VPC イメージを使用している場合、状態を保存せずにイメージを再起動するのが最も簡単です。
  5. また、トラブルシューティングを容易にするために、IE ([ツール] > [インターネット オプション] > [詳細設定]) でわかりやすい HTTP エラー メッセージをオフにします。

: .html ファイルからテキストをコピーすると、隠し文字もコピーされます。 コピーしたテキストを Visual Studio などのエディターやコマンド ボックス ウィンドウに貼り付けると、テキストが正しくコピーされたように見えても、貼り付けたテキストに隠し文字が含まれているために正しく動作しない場合があります。 このような状況では、デバッグが困難になります。

.MHT ファイルからテキストをコピーする場合は、テキストをコピーしてメモ帳に貼り付け、メモ帳からコピーし直す方法をお勧めします。 こうすると隠し文字を取り除くことができます。 テキストが短い場合は、コピーして貼り付けるよりも自分で入力した方が簡単です。

ABO を使用したグローバル設定の作成

この手順では、AdminBaseObjects インターフェイスを使用してグローバル設定の値を変更し、applicationHost.config ファイルに書き込む方法について説明します。 MBExplorer.exe ツールを使用してこのタスクを実行します。

最初に、コンピューターに IIS 7.0 のメタベース互換性コンポーネントがインストールされていることを確認します。 このコンポーネントは既定ではインストールされていません。 Windows Server® 2008 のビルドでは、サーバー マネージャー ツールを使用して ([スタート] -> [管理ツール] -> [サーバー マネージャー])、[IIS 6.0 と互換性のある管理] コンポーネントのチェック ボックスをオンにしてインストールします。 コマンド ボックスから "net start iisadmin" を実行して、この NT サービスが起動しており、実行中であることを確認します。 IISADMIN が既に実行中であることを示すメッセージが表示されます。

次に、Web から MBExplorer ツールをダウンロードする必要があります。 MSN サーチを使用してこのツールを検索すると、検索結果として Microsoft.com のダウンロード センターが表示されます。ここから IIS 6.0 Resource Kit をダウンロードしてインストールします。 MBExplorer ツールはこのリソース キットに含まれています。 通常、インストールによって \Program Files\IIS Resources\Metabase Explorer\MBExplorer.exe に展開されます。

Ee890779.126_Fig1(ja-jp,TechNet.10).png

  1. MBExplorer.exe を実行します。このツールは AdminBaseObjects (ABO) インターフェイス上で動作します。構成の階層の ABO ビューが表示されます。
  2. 左側のウィンドウで、[LM] > [W3SVC] レベルに移動します。 ABO ビューにおける構成階層のグローバル レベルが表示されます。
  3. AuthFlags プロパティを検索します。 ヒント: [Name] 列ヘッダーをクリックしてプロパティを並べ替えると、簡単にこのプロパティを見つけることができます。 既定値は 1 です。     
  4. この値を 1 ~ 7 の整数に変更します。
  5. メモ帳などのテキスト エディターを使用して、次の場所にある ApplicationHost.config ファイルを開きます。
    %windir%\system32\inetsrv\config\ApplicationHost.config
  6. <authentication> セクション グループを検索します。 <authentication> セクションは、設定した値に応じて有効になります。 たとえば、AuthFlags=2 に設定すると、BasicAuthentication のみが enabled="true" になり、他の認証セクションは enabled="false" になります。 これは、IIS 6.0 スキーマで "AUTH_BASIC" に "2" がマップされているためです。
  7. MBExplorer で値を変更して、ApplicationHost.config ファイルのビューを更新します。 メタベースで AuthFlags プロパティを変更して、ApplicationHost.config ファイルで間接的に認証スキームを有効または無効にします。

ABO を使用した仮想ディレクトリ設定の作成

この手順では、ABO を使用して仮想ディレクトリの値を変更し、applicationHost.config ファイルに書き込む方法について説明します。 グローバル設定を変更するわけではないので、ABO 互換性レイヤーによって applicationHost.config ファイル内に場所のタグが生成され、変更した仮想ディレクトリに対応するパスが設定されます。 web.config ファイルは、メタベース互換性コンポーネントでは処理されません。

Ee890779.126_Fig2(ja-jp,TechNet.10).png

  1. MBExplorer.exe ツールを実行します。
  2. 左側のウィンドウで、[LM] > [W3SVC] > [1] >[ROOT] レベルに移動します。 これは、既定の Web サイトの下のルート アプリケーションです。
  3. AuthFlags プロパティの値を設定します。 左側のウィンドウで、[ROOT] をクリックし、[Edit] メニューの [New DWORD Record] を選択し、レコード ID として「6000」と入力します。
  4. これによって、このレベルに AuthFlags プロパティが作成され、値が 0 に設定されます。 右側のウィンドウでプロパティをダブルクリックし、値を 1 ~ 7 の範囲の整数に変更します。
  5. メモ帳などのテキスト エディターを使用して、次の場所にある ApplicationHost.config ファイルを開きます。
    %windir%\system32\inetsrv\config\ApplicationHost.config
  6. ファイルの最後に、新しい <location path="Default Web Site":> タグが追加され、設定した値に従って認証セクションが有効または無効に設定されます。

まとめ

このドキュメントでは、構成システムの互換性機能を有効にする方法について説明しました。 レガシー ツールを使用して、グローバル レベルおよび仮想ディレクトリ レベルで設定を変更し、applicationHost.config に設定を書き込みました。 adsutil.vbs などの他のツールを使用して、マッピングやライトスルーを実行したり、 既存の ABO/ADSI/WMI スクリプトおよびアプリケーションが、この環境でも動作するかどうかを検証してみてください。 また、これとは逆に、applicationHost.config で値を変更し、MBExplorer またはその他のツールやスクリプトで ABO ビューに設定が反映されるかどうかを検証してみてください。