ADSI GetDataPaths 메서드를 다른 IIS 관리 개체와 사용하면 특정 속성이 있는 메타베이스 키의 경로를 찾을 수 있습니다. 이 메서드는 하위 키가 값을 상속받는 것을 막을 수 있는 속성 위치를 찾을 때도 사용됩니다. 경로 검색은 GetDataPaths를 사용할 개체와 관련된 키에서 시작되며 해당 키에 속성이 있으면 시작 경로를 반환합니다. 예를 들어, 세 번째 웹 서버에 대해 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)
| 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
%>