home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 November / VPR0011B.ISO / nec98 / ins1.cab / nntp_rsess.vbs < prev    next >
Text File  |  1999-12-29  |  6KB  |  264 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_DESC_EXAMPLES     = "Examples:"
  27. L_DESC_EXAMPLE1     = "rsess.vbs -t e -v 1"
  28. L_DESC_EXAMPLE2     = "rsess.vbs -t d -u bad_user"
  29. L_DESC_EXAMPLE3     = "rsess.vbs -t a"
  30.  
  31. L_STR_SESSION_NAME            = "Username:"
  32. L_STR_SESSION_IPADDRESS        = "IP Address:"
  33. L_STR_SESSION_START_TIME    = "Connect time:"
  34. L_STR_NUM_SESSIONS            = "Number of sessions:"
  35.  
  36. L_ERR_MUST_ENTER_USER_OR_IP    = "Error: You must enter either a username or an IP address."
  37.  
  38. REM
  39. REM END LOCALIZATION
  40. REM
  41.  
  42. REM
  43. REM --- Globals ---
  44. REM
  45.  
  46. dim g_dictParms
  47. dim    g_admin
  48.  
  49. set g_dictParms = CreateObject ( "Scripting.Dictionary" )
  50. set g_admin = CreateObject ( "NntpAdm.Sessions" )
  51.  
  52. REM
  53. REM --- Set argument defaults ---
  54. REM
  55.  
  56. g_dictParms(L_SWITCH_OPERATION)        = ""
  57. g_dictParms(L_SWITCH_SERVER)        = ""
  58. g_dictParms(L_SWITCH_INSTANCE_ID)    = "1"
  59. g_dictParms(L_SWITCH_USERNAME)        = ""
  60. g_dictParms(L_SWITCH_IPADDRESS)        = ""
  61.  
  62. REM
  63. REM --- Begin Main Program ---
  64. REM
  65.  
  66. if NOT ParseCommandLine ( g_dictParms, WScript.Arguments ) then
  67.     usage
  68.     WScript.Quit ( 0 )
  69. end if
  70.  
  71. dim cSessions
  72. dim i
  73. dim id
  74. dim index
  75.  
  76. REM
  77. REM    Debug: print out command line arguments:
  78. REM
  79. REM switches = g_dictParms.keys
  80. REM args = g_dictParms.items
  81. REM
  82. REM
  83. REM for i = 0 to g_dictParms.Count - 1
  84. REM     WScript.echo switches(i) & " = " & args(i)
  85. REM next
  86. REM
  87.  
  88. g_admin.Server = g_dictParms(L_SWITCH_SERVER)
  89. g_admin.ServiceInstance = g_dictParms(L_SWITCH_INSTANCE_ID)
  90.  
  91.     On Error Resume Next
  92. g_admin.Enumerate
  93.     if ( Err.Number <> 0 ) then
  94.         WScript.echo " Error Enumeration Sessions: " & Err.Description & "(" & Err.Number & ")"
  95.     end if
  96.  
  97. select case g_dictParms(L_SWITCH_OPERATION)
  98. case L_OP_ENUMERATE
  99.     REM
  100.     REM    List the existing expiration policies:
  101.     REM
  102.  
  103.     cSessions = g_admin.Count
  104.  
  105.     WScript.Echo L_STR_NUM_SESSIONS & " " & cSessions
  106.  
  107.     for i = 0 to cSessions - 1
  108.  
  109.    On Error Resume Next
  110.     g_admin.GetNth i
  111.    if ( Err.Number <> 0 ) then
  112.         WScript.echo " Error gettomg Session: " & Err.Description & "(" & Err.Number & ")"
  113.     else 
  114.         PrintSession g_admin
  115.     end if
  116.  
  117.  
  118. REM                 WScript.Echo
  119. REM             PrintSession g_admin
  120.  
  121.     next
  122.  
  123. case L_OP_DELETE
  124.     REM
  125.     REM    Delete specific current sessions
  126.     REM
  127.  
  128.     g_admin.Username    = g_dictParms ( L_SWITCH_USERNAME )
  129.     g_admin.IPAddress    = g_dictParms ( L_SWITCH_IPADDRESS )
  130.  
  131.     if g_admin.Username = "" AND g_admin.IPAddress = "" then
  132.         WScript.Echo L_ERR_MUST_ENTER_USER_OR_IP
  133.         WScript.Quit 0
  134.     end if
  135.  
  136.    On Error Resume Next
  137.     g_admin.Terminate
  138.     if ( Err.Number <> 0 ) then
  139.         WScript.echo " Error Termination Session: " & Err.Description & "(" & Err.Number & ")"
  140.     else 
  141.         PrintSession g_admin
  142.     end if
  143.  
  144. case L_OP_DELETE_ALL
  145.     REM
  146.     REM    Delete all current sessions
  147.     REM
  148.  
  149.    On Error Resume Next
  150.     g_admin.TerminateAll
  151.     if ( Err.Number <> 0 ) then
  152.         WScript.echo " Error Termination All Sessions: " & Err.Description & "(" & Err.Number & ")"
  153.     else 
  154.         PrintSession g_admin
  155.     end if
  156.  
  157. case else
  158.     usage
  159.  
  160. end select
  161.  
  162. WScript.Quit 0
  163.  
  164. REM
  165. REM --- End Main Program ---
  166. REM
  167.  
  168. REM
  169. REM ParseCommandLine ( dictParameters, cmdline )
  170. REM     Parses the command line parameters into the given dictionary
  171. REM
  172. REM Arguments:
  173. REM     dictParameters  - A dictionary containing the global parameters
  174. REM     cmdline - Collection of command line arguments
  175. REM
  176. REM Returns - Success code
  177. REM
  178.  
  179. Function ParseCommandLine ( dictParameters, cmdline )
  180.     dim     fRet
  181.     dim     cArgs
  182.     dim     i
  183.     dim     strSwitch
  184.     dim     strArgument
  185.  
  186.     fRet    = TRUE
  187.     cArgs   = cmdline.Count
  188.     i       = 0
  189.     
  190.     do while (i < cArgs)
  191.  
  192.         REM
  193.         REM Parse the switch and its argument
  194.         REM
  195.  
  196.         if i + 1 >= cArgs then
  197.             REM
  198.             REM Not enough command line arguments - Fail
  199.             REM
  200.  
  201.             fRet = FALSE
  202.             exit do
  203.         end if
  204.  
  205.         strSwitch = cmdline(i)
  206.         i = i + 1
  207.  
  208.         strArgument = cmdline(i)
  209.         i = i + 1
  210.  
  211.         REM
  212.         REM Add the switch,argument pair to the dictionary
  213.         REM
  214.  
  215.         if NOT dictParameters.Exists ( strSwitch ) then
  216.             REM
  217.             REM Bad switch - Fail
  218.             REM
  219.  
  220.             fRet = FALSE
  221.             exit do
  222.         end if 
  223.  
  224.         dictParameters(strSwitch) = strArgument
  225.  
  226.     loop
  227.  
  228.     ParseCommandLine = fRet
  229. end function
  230.  
  231. REM
  232. REM Usage ()
  233. REM     prints out the description of the command line arguments
  234. REM
  235.  
  236. Sub Usage
  237.  
  238.     WScript.Echo L_DESC_PROGRAM
  239.     WScript.Echo vbTab & L_SWITCH_OPERATION & " " & L_DESC_OPERATIONS
  240.     WScript.Echo vbTab & vbTab & L_OP_ENUMERATE & vbTab & L_DESC_ENUMERATE
  241.     WScript.Echo vbTab & vbTab & L_OP_DELETE & vbTab & L_DESC_DELETE
  242.     WScript.Echo vbTab & vbTab & L_OP_DELETE_ALL & vbTab & L_DESC_DELETE_ALL
  243.     WScript.Echo vbTab & L_SWITCH_SERVER & " " & L_DESC_SERVER
  244.     WScript.Echo vbTab & L_SWITCH_INSTANCE_ID & " " & L_DESC_INSTANCE_ID
  245.     WScript.Echo vbTab & L_SWITCH_USERNAME & " " & L_DESC_USERNAME
  246.     WScript.Echo vbTab & L_SWITCH_IPADDRESS & " " & L_DESC_IPADDRESS
  247.  
  248.     WScript.Echo
  249.     WScript.Echo L_DESC_EXAMPLES
  250.     WScript.Echo L_DESC_EXAMPLE1
  251.     WScript.Echo L_DESC_EXAMPLE2
  252.     WScript.Echo L_DESC_EXAMPLE3
  253.  
  254. end sub
  255.  
  256. Sub PrintSession ( admobj )
  257.  
  258.     WScript.Echo L_STR_SESSION_NAME & " " & admobj.Username
  259.     WScript.Echo L_STR_SESSION_IPADDRESS & " " & admobj.IPAddress
  260.     WScript.Echo L_STR_SESSION_START_TIME & " " & admobj.StartTime
  261.  
  262. end sub
  263.  
  264.