Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
REM REM LOCALIZATION REM
L_SWITCH_OPERATION = "-t" L_SWITCH_SERVER = "-s" L_SWITCH_INSTANCE_ID = "-v" L_SWITCH_USERNAME = "-u" L_SWITCH_IPADDRESS = "-i"
L_OP_ENUMERATE = "e" L_OP_DELETE = "d" L_OP_DELETE_ALL = "a"
L_DESC_PROGRAM = "rsess - Manipulate NNTP server sessions" L_DESC_ENUMERATE = "enumerate current sessions" L_DESC_DELETE = "delete a session (must specify -u or -i)" L_DESC_DELETE_ALL = "delete all sessions"
L_DESC_OPERATIONS = "<operations>" L_DESC_SERVER = "<server> Specify computer to configure" L_DESC_INSTANCE_ID = "<virtual server id> Specify virtual server id" L_DESC_USERNAME = "<username> Username to delete" L_DESC_IPADDRESS = "<IP Address> IP Address to delete"
L_DESC_EXAMPLES = "Examples:" L_DESC_EXAMPLE1 = "rsess.vbs -t e -v 1" L_DESC_EXAMPLE2 = "rsess.vbs -t d -u bad_user" L_DESC_EXAMPLE3 = "rsess.vbs -t a"
L_STR_SESSION_NAME = "Username:" L_STR_SESSION_IPADDRESS = "IP Address:" L_STR_SESSION_START_TIME = "Connect time:" L_STR_NUM_SESSIONS = "Number of sessions:"
L_ERR_MUST_ENTER_USER_OR_IP = "Error: You must enter either a username or an IP address."
REM REM END LOCALIZATION REM
REM REM --- Globals --- REM
dim g_dictParms dim g_admin
set g_dictParms = CreateObject ( "Scripting.Dictionary" ) set g_admin = CreateObject ( "NntpAdm.Sessions" )
REM REM --- Set argument defaults --- REM
g_dictParms(L_SWITCH_OPERATION) = "" g_dictParms(L_SWITCH_SERVER) = "" g_dictParms(L_SWITCH_INSTANCE_ID) = "1" g_dictParms(L_SWITCH_USERNAME) = "" g_dictParms(L_SWITCH_IPADDRESS) = ""
REM REM --- Begin Main Program --- REM
if NOT ParseCommandLine ( g_dictParms, WScript.Arguments ) then usage WScript.Quit ( 0 ) end if
dim cSessions dim i dim id dim index
REM REM Debug: print out command line arguments: REM REM switches = g_dictParms.keys REM args = g_dictParms.items REM REM REM for i = 0 to g_dictParms.Count - 1 REM WScript.echo switches(i) & " = " & args(i) REM next REM
g_admin.Server = g_dictParms(L_SWITCH_SERVER) g_admin.ServiceInstance = g_dictParms(L_SWITCH_INSTANCE_ID)
On Error Resume Next g_admin.Enumerate if ( Err.Number <> 0 ) then WScript.echo " Error Enumeration Sessions: " & Err.Description & "(" & Err.Number & ")" end if
select case g_dictParms(L_SWITCH_OPERATION) case L_OP_ENUMERATE REM REM List the existing expiration policies: REM
cSessions = g_admin.Count
WScript.Echo L_STR_NUM_SESSIONS & " " & cSessions
for i = 0 to cSessions - 1
On Error Resume Next g_admin.GetNth i if ( Err.Number <> 0 ) then WScript.echo " Error gettomg Session: " & Err.Description & "(" & Err.Number & ")" else PrintSession g_admin end if
REM WScript.Echo REM PrintSession g_admin
next
case L_OP_DELETE REM REM Delete specific current sessions REM
g_admin.Username = g_dictParms ( L_SWITCH_USERNAME ) g_admin.IPAddress = g_dictParms ( L_SWITCH_IPADDRESS )
if g_admin.Username = "" AND g_admin.IPAddress = "" then WScript.Echo L_ERR_MUST_ENTER_USER_OR_IP WScript.Quit 0 end if
On Error Resume Next g_admin.Terminate if ( Err.Number <> 0 ) then WScript.echo " Error Termination Session: " & Err.Description & "(" & Err.Number & ")" else PrintSession g_admin end if
case L_OP_DELETE_ALL REM REM Delete all current sessions REM
On Error Resume Next g_admin.TerminateAll if ( Err.Number <> 0 ) then WScript.echo " Error Termination All Sessions: " & Err.Description & "(" & Err.Number & ")" else PrintSession g_admin end if
case else usage
end select
WScript.Quit 0
REM REM --- End Main Program --- REM
REM REM ParseCommandLine ( dictParameters, cmdline ) REM Parses the command line parameters into the given dictionary REM REM Arguments: REM dictParameters - A dictionary containing the global parameters REM cmdline - Collection of command line arguments REM REM Returns - Success code REM
Function ParseCommandLine ( dictParameters, cmdline ) dim fRet dim cArgs dim i dim strSwitch dim strArgument
fRet = TRUE cArgs = cmdline.Count i = 0 do while (i < cArgs)
REM REM Parse the switch and its argument REM
if i + 1 >= cArgs then REM REM Not enough command line arguments - Fail REM
fRet = FALSE exit do end if
strSwitch = cmdline(i) i = i + 1
strArgument = cmdline(i) i = i + 1
REM REM Add the switch,argument pair to the dictionary REM
if NOT dictParameters.Exists ( strSwitch ) then REM REM Bad switch - Fail REM
fRet = FALSE exit do end if
dictParameters(strSwitch) = strArgument
loop
ParseCommandLine = fRet end function
REM REM Usage () REM prints out the description of the command line arguments REM
Sub Usage
WScript.Echo L_DESC_PROGRAM WScript.Echo vbTab & L_SWITCH_OPERATION & " " & L_DESC_OPERATIONS WScript.Echo vbTab & vbTab & L_OP_ENUMERATE & vbTab & L_DESC_ENUMERATE WScript.Echo vbTab & vbTab & L_OP_DELETE & vbTab & L_DESC_DELETE WScript.Echo vbTab & vbTab & L_OP_DELETE_ALL & vbTab & L_DESC_DELETE_ALL WScript.Echo vbTab & L_SWITCH_SERVER & " " & L_DESC_SERVER WScript.Echo vbTab & L_SWITCH_INSTANCE_ID & " " & L_DESC_INSTANCE_ID WScript.Echo vbTab & L_SWITCH_USERNAME & " " & L_DESC_USERNAME WScript.Echo vbTab & L_SWITCH_IPADDRESS & " " & L_DESC_IPADDRESS
WScript.Echo WScript.Echo L_DESC_EXAMPLES WScript.Echo L_DESC_EXAMPLE1 WScript.Echo L_DESC_EXAMPLE2 WScript.Echo L_DESC_EXAMPLE3
end sub
Sub PrintSession ( admobj )
WScript.Echo L_STR_SESSION_NAME & " " & admobj.Username WScript.Echo L_STR_SESSION_IPADDRESS & " " & admobj.IPAddress WScript.Echo L_STR_SESSION_START_TIME & " " & admobj.StartTime
end sub
|