GetDataPaths
ADSI の GetDataPaths メソッドは、指定されたプロパティが存在するメタベース キーへのパスを検索するもので、すべての IIS Admin オブジェクトで使用できます。このメソッドを使用して、サブキーでの値の継承を妨げているプロパティを探すことができます。パスの検索は、GetDataPaths を使用するオブジェクトに関連付けられたキーから開始され、そのキーにプロパティが見つかった場合は、開始パスを返します。たとえば、3 番目の Web サーバーの IIsWebServer オブジェクトに GetDataPaths を使用する場合、検索パスは IIS://LocalHost/W3SVC/3 から開始され、IIS://LocalHost/W3SVC/3、IIS://LocalHost/W3SVC/3/ROOT/VDir1、および IIS://LocalHost/W3SVC/3/ROOT/VDir1/Dir1/File1 の各パスがプロパティを含むキーであれば、それらのパスを返します。
このメソッドのパラメータは、継承可能なプロパティのパスのみを検索するのか、またはすべてのプロパティ パスを検索するのかを指定できます。GetDataPaths では、プロパティが出現する箇所と共に、プロパティが継承可能かどうかを調べることができます。
構文
PathList = object.GetDataPaths( property,AttributeFlag )
要素
- PathList
指定されたプロパティが出現する位置へのパスの一覧を受け取ります。 - object
通常は、直前の GetObject 操作の結果として、IIS Admin オブジェクトを含んでいます。 - property
パスを検索するプロパティの名前です。 - AttributeFlag
次のいずれかのフラグを指定します。IIS_ANY_PROPERTY プロパティが継承可能かどうかに関係なくパスを取得します。 IIS_INHERITABLE_ONLY プロパティが継承可能である場合のみパスを取得します。継承可能でない場合は、MD_ERROR_DATA_NOT_FOUND を返します。
解説
"For each Path in PathList...Next" ステートメントを使用して、PathList から個々のパスを取得できます。
コード例
<%
Const IIS_ANY_PROPERTY = 0
Const IIS_INHERITABLE_ONLY = 1
Const MD_ERROR_DATA_NOT_FOUND = &H800CC801
Dim WebSvrObj, PathList, vProperty
On Error Resume Next
'Get the object for the first Web server.
Set WebSvrObj = GetObject("IIS://LocalHost/W3SVC/1")
'Get the paths where a property is located.
vProperty = "AccessFlags"
PathList = WebSvrObj.GetDataPaths(vProperty, IIS_INHERITABLE_ONLY)
If Err.Number = 0 Then
Response.Write "Paths for property " & vProperty & "<BR>"
For each Path in PathList
Response.Write Path & "<BR>"
Next
ElseIf Err.Number = MD_ERROR_DATA_NOT_FOUND Then
Response.Write "Property is not inheritable.<BR>"
ElseIf Err.Number = &H80005006 Then
Response.Write "Property does not exist.<BR>"
Else
Response.Write "Error " & Err.Number & " " & Err.Description
End If
%>