home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 9 / IOPROG_9.ISO / contrib / iis4 / ins.cab / rsess.vbs < prev    next >
Encoding:
Text File  |  1997-08-16  |  5.1 KB  |  229 lines

  1. REM
  2. REM LOCALIZATION
  3. REM
  4.  
  5. L_SWITCH_OPERATION      = "-t"
  6. L_SWITCH_SERVER         = "-s"
  7. L_SWITCH_INSTANCE_ID    = "-v"
  8. L_SWITCH_USERNAME        = "-u"
  9. L_SWITCH_IPADDRESS        = "-i"
  10.  
  11. L_OP_ENUMERATE      = "e"
  12. L_OP_DELETE         = "d"
  13. L_OP_DELETE_ALL     = "a"
  14.  
  15. L_DESC_PROGRAM      = "rsess - Manipulate NNTP server sessions"
  16. L_DESC_ENUMERATE    = "enumerate current sessions"
  17. L_DESC_DELETE       = "delete a session (must specify -u or -i)"
  18. L_DESC_DELETE_ALL    = "delete all sessions"
  19.  
  20. L_DESC_OPERATIONS    = "<operations>"
  21. L_DESC_SERVER       = "<server> Specify computer to configure"
  22. L_DESC_INSTANCE_ID  = "<virtual server id> Specify virtual server id"
  23. L_DESC_USERNAME        = "<username> Username to delete"
  24. L_DESC_IPADDRESS    = "<IP Address> IP Address to delete"
  25.  
  26. L_STR_SESSION_NAME            = "Username:"
  27. L_STR_SESSION_IPADDRESS        = "IP Address:"
  28. L_STR_SESSION_START_TIME    = "Connect time:"
  29. L_STR_NUM_SESSIONS            = "Number of sessions:"
  30.  
  31. L_ERR_MUST_ENTER_USER_OR_IP    = "Error: You must enter either a username or an IP address."
  32.  
  33. REM
  34. REM END LOCALIZATION
  35. REM
  36.  
  37. REM
  38. REM --- Globals ---
  39. REM
  40.  
  41. dim g_dictParms
  42. dim    g_admin
  43.  
  44. set g_dictParms = CreateObject ( "Scripting.Dictionary" )
  45. set g_admin = CreateObject ( "NntpAdm.Sessions" )
  46.  
  47. REM
  48. REM --- Set argument defaults ---
  49. REM
  50.  
  51. g_dictParms(L_SWITCH_OPERATION)        = ""
  52. g_dictParms(L_SWITCH_SERVER)        = ""
  53. g_dictParms(L_SWITCH_INSTANCE_ID)    = "1"
  54. g_dictParms(L_SWITCH_USERNAME)        = ""
  55. g_dictParms(L_SWITCH_IPADDRESS)        = ""
  56.  
  57. REM
  58. REM --- Begin Main Program ---
  59. REM
  60.  
  61. if NOT ParseCommandLine ( g_dictParms, WScript.Arguments ) then
  62.     usage
  63.     WScript.Quit ( 0 )
  64. end if
  65.  
  66. dim cSessions
  67. dim i
  68. dim id
  69. dim index
  70.  
  71. REM
  72. REM    Debug: print out command line arguments:
  73. REM
  74. REM switches = g_dictParms.keys
  75. REM args = g_dictParms.items
  76. REM
  77. REM
  78. REM for i = 0 to g_dictParms.Count - 1
  79. REM     WScript.echo switches(i) & " = " & args(i)
  80. REM next
  81. REM
  82.  
  83. g_admin.Server = g_dictParms(L_SWITCH_SERVER)
  84. g_admin.ServiceInstance = g_dictParms(L_SWITCH_INSTANCE_ID)
  85. g_admin.Enumerate
  86.  
  87. select case g_dictParms(L_SWITCH_OPERATION)
  88. case L_OP_ENUMERATE
  89.     REM
  90.     REM    List the existing expiration policies:
  91.     REM
  92.  
  93.     cSessions = g_admin.Count
  94.  
  95.     WScript.Echo L_STR_NUM_SESSIONS & " " & cSessions
  96.  
  97.     for i = 0 to cSessions - 1
  98.  
  99.         g_admin.GetNth i
  100.  
  101.         WScript.Echo
  102.         PrintSession g_admin
  103.  
  104.     next
  105.  
  106. case L_OP_DELETE
  107.     REM
  108.     REM    Delete specific current sessions
  109.     REM
  110.  
  111.     g_admin.Username    = g_dictParms ( L_SWITCH_USERNAME )
  112.     g_admin.IPAddress    = g_dictParms ( L_SWITCH_IPADDRESS )
  113.  
  114.     if g_admin.Username = "" AND g_admin.IPAddress = "" then
  115.         WScript.Echo L_ERR_MUST_ENTER_USER_OR_IP
  116.         WScript.Quit 0
  117.     end if
  118.  
  119.     g_admin.Terminate
  120.  
  121. case L_OP_DELETE_ALL
  122.     REM
  123.     REM    Delete all current sessions
  124.     REM
  125.  
  126.     g_admin.TerminateAll
  127.  
  128. case else
  129.     usage
  130.  
  131. end select
  132.  
  133. WScript.Quit 0
  134.  
  135. REM
  136. REM --- End Main Program ---
  137. REM
  138.  
  139. REM
  140. REM ParseCommandLine ( dictParameters, cmdline )
  141. REM     Parses the command line parameters into the given dictionary
  142. REM
  143. REM Arguments:
  144. REM     dictParameters  - A dictionary containing the global parameters
  145. REM     cmdline - Collection of command line arguments
  146. REM
  147. REM Returns - Success code
  148. REM
  149.  
  150. Function ParseCommandLine ( dictParameters, cmdline )
  151.     dim     fRet
  152.     dim     cArgs
  153.     dim     i
  154.     dim     strSwitch
  155.     dim     strArgument
  156.  
  157.     fRet    = TRUE
  158.     cArgs   = cmdline.Count
  159.     i       = 0
  160.     
  161.     do while (i < cArgs)
  162.  
  163.         REM
  164.         REM Parse the switch and its argument
  165.         REM
  166.  
  167.         if i + 1 >= cArgs then
  168.             REM
  169.             REM Not enough command line arguments - Fail
  170.             REM
  171.  
  172.             fRet = FALSE
  173.             exit do
  174.         end if
  175.  
  176.         strSwitch = cmdline(i)
  177.         i = i + 1
  178.  
  179.         strArgument = cmdline(i)
  180.         i = i + 1
  181.  
  182.         REM
  183.         REM Add the switch,argument pair to the dictionary
  184.         REM
  185.  
  186.         if NOT dictParameters.Exists ( strSwitch ) then
  187.             REM
  188.             REM Bad switch - Fail
  189.             REM
  190.  
  191.             fRet = FALSE
  192.             exit do
  193.         end if 
  194.  
  195.         dictParameters(strSwitch) = strArgument
  196.  
  197.     loop
  198.  
  199.     ParseCommandLine = fRet
  200. end function
  201.  
  202. REM
  203. REM Usage ()
  204. REM     prints out the description of the command line arguments
  205. REM
  206.  
  207. Sub Usage
  208.  
  209.     WScript.Echo L_DESC_PROGRAM
  210.     WScript.Echo vbTab & L_SWITCH_OPERATION & " " & L_DESC_OPERATIONS
  211.     WScript.Echo vbTab & vbTab & L_OP_ENUMERATE & vbTab & L_DESC_ENUMERATE
  212.     WScript.Echo vbTab & vbTab & L_OP_DELETE & vbTab & L_DESC_DELETE
  213.     WScript.Echo vbTab & vbTab & L_OP_DELETE_ALL & vbTab & L_DESC_DELETE_ALL
  214.     WScript.Echo vbTab & L_SWITCH_SERVER & " " & L_DESC_SERVER
  215.     WScript.Echo vbTab & L_SWITCH_INSTANCE_ID & " " & L_DESC_INSTANCE_ID
  216.     WScript.Echo vbTab & L_SWITCH_USERNAME & " " & L_DESC_USERNAME
  217.     WScript.Echo vbTab & L_SWITCH_IPADDRESS & " " & L_DESC_IPADDRESS
  218.  
  219. end sub
  220.  
  221. Sub PrintSession ( admobj )
  222.  
  223.     WScript.Echo L_STR_SESSION_NAME & " " & admobj.Username
  224.     WScript.Echo L_STR_SESSION_IPADDRESS & " " & admobj.IPAddress
  225.     WScript.Echo L_STR_SESSION_START_TIME & " " & admobj.StartTime
  226.  
  227. end sub
  228.  
  229.