home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / iis4_07.cab / logenum.vbs < prev    next >
Text File  |  1997-10-25  |  3KB  |  128 lines

  1. '''''''''''''''''''''''''''''''''''''''''''''
  2. '
  3. '  Logging Module Enumeration Utility
  4. '
  5. '''''''''''''''''''''''''''''''''''''''''''''
  6.  
  7. '  Description:
  8. '  ------------
  9. '  This sample admin script allows you configure logging services for IIS.
  10. '
  11. '  To Run:  
  12. '  -------
  13. '  This is the format for this script:
  14. '  
  15. '      cscript logenum.vbs [<adspath>]
  16. '  
  17. '  NOTE:  If you want to execute this script directly from Windows, use 
  18. '  'wscript' instead of 'cscript'. 
  19. '
  20. '''''''''''''''''''''''''''''''''''''''''''''
  21.  
  22. ' Initialize error checking
  23. On Error Resume Next
  24.  
  25. ' Initialize variables
  26. Dim ArgCount, TargetNode, SObj, ModListObj, ChildObj, RealModObj, LogNameStr
  27.  
  28. ' Default values
  29. ArgCount = 0
  30. TargetNode = ""
  31.  
  32.  
  33.  
  34.   ' ** Parse Command Line
  35.  
  36.     ' Loop through arguments
  37.     While ArgCount < Wscript.Arguments.Count
  38.       
  39.       ' Determine switches used
  40.       Select Case Wscript.Arguments(ArgCount)
  41.  
  42.          Case "-h", "-?", "/?":
  43.             Call UsageMsg
  44.  
  45.          Case Else:    ' specifying what ADsPath to look at
  46.             If TargetNode <> "" Then  ' only one name at a time
  47.                 Call UsageMsg
  48.             Else
  49.                 TargetNode = Wscript.Arguments(ArgCount)
  50.             End If
  51.  
  52.       End Select
  53.  
  54.       ' Move pointer to next argument
  55.       ArgCount = ArgCount + 1
  56.  
  57.     Wend
  58.  
  59.     ' Get main logging module list object 
  60.     Set ModListObj = GetObject("IIS://LocalHost/Logging")
  61.         If Err.Number <> 0 Then   ' Error!
  62.             WScript.Echo "Error:  Couldn't GetObject /Localhost/Logging."
  63.             Wscript.Quit(1)
  64.         End If
  65.  
  66.  
  67.     ' LIST ALL MODULES
  68.     If TargetNode = "" Then  
  69.  
  70.         WScript.Echo "Logging modules available at IIS://LocalHost/Logging node:"
  71.  
  72.         ' Loop through listed logging modules
  73.         For Each ChildObj in ModListObj
  74.  
  75.             ' break out module friendly name from path
  76.             LogNameStr = ChildObj.Name
  77.  
  78.             Wscript.Echo "Logging module '" & LogNameStr & "':"
  79.             Wscript.Echo "      Module ID: " & ChildObj.LogModuleId
  80.             Wscript.Echo "   Module UI ID: " & ChildObj.LogModuleUiId
  81.         
  82.         Next
  83.         
  84.         Wscript.Quit(0)
  85.     
  86.     Else 
  87.     ' LIST MODULES FOR GIVEN NODE
  88.  
  89.     Set SObj = GetObject(TargetNode)
  90.  
  91.     ' Some error checking ...
  92.     If Err.Number <> 0 Then   ' Error!
  93.         WScript.Echo "Error:  Couldn't GetObject " & TargetNode & "."
  94.         Wscript.Quit(1)
  95.     End If
  96.     If SObj.LogPluginClsId = "" Then   ' Not the right type of object
  97.         Wscript.Echo "Error:  Object does not support property LogPluginClsId."
  98.         Wscript.Quit(1)
  99.     End If
  100.  
  101.      
  102.     ' **MAIN LOOP to find the correct logging module
  103.     For Each ChildObj In ModListObj
  104.         If SObj.LogPluginClsId = ChildObj.LogModuleId Then  ' Compare CLSIDs
  105.              Set RealModObj = ChildObj
  106.         End If
  107.     Next
  108.  
  109.     ' Code could be added here, in case module ID returned is invalid ...
  110.  
  111.     ' Display Results
  112.     WScript.Echo "Logging module in use by '" & SObj.ADsPath & "':"
  113.     Wscript.Echo "       Logging module: " & RealModObj.Name
  114.     Wscript.Echo "    Logging module ID: " & RealModObj.LogModuleId
  115.     Wscript.Echo " Logging module UI ID: " & RealModObj.LogModuleUiId
  116.  
  117.   End If
  118.  
  119.  
  120.  
  121.  
  122. ' Displays usage message, then QUITS
  123. Sub UsageMsg
  124.    Wscript.Echo "Usage:  cscript logenum.vbs [<adspath>]" 
  125.    Wscript.Quit
  126. End Sub
  127.  
  128.