여러 개의 로깅 모듈을 사용할 경우 사용자가 준비하지 않으면 여러 가지 문제를 일으킬 수 있습니다. 이 예제 도구는 사용자 자신의 로깅 관리 도구를 작성할 때 사용할 수 있는 기술 중 일부를 보여 줍니다.
이 예제 도구는 두 가지 독립적인 기능을 수행합니다. 명령줄 인수 없이 호출하면 서버의 메타베이스에 있는 항목을 현재 가지고 있는 모든 로깅 모듈을 나열하기만 합니다. 그러나 IIS://LocalHost/W3SVC/3 같은 ADsPath를 지정하면 도구는 해당 메타베이스 노드에 대해 현재 사용하고 있는 로깅 모듈을 확인하여 이 로깅 모듈에 대한 정보를 사용자에게 제공합니다.
사용할 수 있는 로깅 모듈을 나열하기 위해 GetObject 메서드를 호출하여 메타베이스의 IIS://LocalHost/Logging 노드에 대한 액세스를 얻습니다. For ...Each 루프를 사용하여 해당 노드에 근거하고 있는 모듈 수를 일일히 열거합니다.
특정 서버의 로깅 모듈에 대한 정보를 수집하는 일은 좀 더 복잡합니다. 서버가 현재 사용하고 있는 로깅 모듈을 나타내는 서버쪽의 유일한 속성은 LogPluginClsId 속성이기 때문에 일치하는 값을 찾을 때까지 이 속성 값을 //LocalHost 수준에 열거된 각 모듈 및 모든 모듈과 비교해야 합니다.
GetObject를 사용하여 //LocalHost 수준에서 제공되는 로깅 모듈 목록에 대한 액세스를 얻습니다. 일치하는 값을 찾을 때까지 로깅 모듈의 CLSID를 이 기본 목록에 있는 각 로깅 모듈의 CLSID와 비교합니다. 일치하는 항목을 찾으면 스크립트는 사용자에게 로깅 모듈에 대해 스크립트가 할 수 있는 모든 작업을 알려 줍니다. 일치하는 항목이 없으면 스크립트가 중단되고 오류가 발생합니다.
이 스크립트는 인터넷 서비스 디렉터리인 ...\iissamples\sdk\admin\logenum.vbs에 있습니다.