ADSI オブジェクト メソッド

IIS Admin オブジェクト の ADSI メソッドは、IIS の構成を制御するメタベース プロパティの値を変更します。IIS の特定の要素を構成するには、その要素に関連付けられたメタベース キーに対応する IIS Admin オブジェクトを開き、そのオブジェクトにキャッシュされているプロパティ値を変更し、さらに変更された値をオブジェクトからメタベースに格納します。

次に示す ADSI メソッドは IIS Admin オブジェクトが公開しているもので、メタベース プロパティを設定または照会するために使用されます。

メソッド 説明
Get 指定されたプロパティの値をオブジェクトから取得します。
GetDataPaths 指定された開始パスに従属する、メタベース プロパティのすべての場所へのパスを取得します。
GetEx 単一の値または複数の値を持つプロパティの値を取得します。
GetInfo メタベースに存在するプロパティ値でオブジェクトを再ロードします。
GetPropertyAttribObj プロパティの属性を含んでいるオブジェクトを取得します。このオブジェクトを使用し、ADSI プロパティの個々の属性を取得することができます。
Put プロパティに値を設定します。
PutEx 単一の値または複数の値を持つプロパティに値を設定します。
SetInfo オブジェクト プロパティの値をメタベースに書き込みます。

GetInfo メソッドは、メタベースからオブジェクトにプロパティ値を再ロードします。IIS Admin オブジェクトを作成するか、または GetObject 関数で開くと、そのオブジェクトのプロパティは初期化されます。GetInfo メソッドを使用して、オブジェクトにキャッシュされた変更済みのプロパティ値を上書きすることで、プロパティ値をメタベースから復元できます。次に、Get または GetEx メソッドを使用してオブジェクト プロパティを取得し、その値を変数に割り当てます。さらに、Put および PutEx メソッドを使用して、オブジェクトのプロパティ値を変更します。

IIS Admin オブジェクトは、VBScript や JScript などの言語で使用される、object.property 構文もサポートしています。SetInfo メソッドを使用して、オブジェクトからメタベースにプロパティ値を書き込むことができます。SetInfo を呼び出すと、オブジェクトで変更したプロパティのみがメタベースに書き込まれます。SetInfo を呼び出さないと、変更がメタベースに反映されません。

IIS Admin オブジェクトのプロパティを変更するためにメタベースとバインドすると、プロパティの値を変更する間はメタベースのロックが解除されます。値を取得してからメタベースに保存するまでに、ほかのプログラムがメタベースの値を変更する可能性があります。このため、プログラムが値を取得してから保存するまでの時間を最小限にする必要があります。

ADSI プロパティはオブジェクトのみに適用され、非 ADSI プロパティはメタベースに適用されます。ADSI プロパティを取得するときは、object.property 構文を使用する必要があります。一方、メタベース プロパティを操作するときは、object.property 構文または Get と Put などの ADSI メソッドのどちらでも使用できます。

次の VBScript コードのサンプルは、IIS Admin オブジェクトの ADSI メソッドを使用してメタベース内の値を変更する方法、および効率を上げるためにメタベース プロパティを継承する方法を示しています。MyComputer は、IIS を実行するコンピュータの名前が入るプレースホルダです。

  <%
  Dim WebServerObj
  Dim VDirObj
  Dim WritePerm

  'Open the object for the first virtual Web server root.
  Set WebServerObj = GetObject("IIS://MyComputer/W3SVC/1/Root")

  'Deny write access for all directories and files
  'for the server (except those already specifically set)
  'by using the Put method.
  WebServerObj.Put "AccessWrite", False

  'Save the changed value to the metabase.
  WebServerObj.SetInfo

  'Get a directory subordinate to the Web server root.
  Set VDirObj = GetObject("IIS://MyComputer/W3SVC/1/Root/Vdir1/Dir1a")

  'Overwrite the inherited value for write access
  'by using the dot method equivalent to Put.
  VDirObj.AccessWrite = True

  'Save the changed value to the metabase.
  VDirObj.SetInfo
%>