Check connections for windows
A Visual Basic Script to check how many open connections exists in a certain port.

Here is the code:

'Script Check Number of ESTABLISHED connections
'Author: Felipe Ferreira
'Data: 29/07/2010
'Version: 1.0 (nagios)
'----------NAGIOS VARs
Const intOK = 0
Const intWarning = 1
Const intCritical = 2
Const intError = 3
Const intUnknown = 3
'----------SCRIPT VARS
Dim ofolder,filename
Dim stroutput : stroutput = "OK - "
Dim argcountcommand
Dim arg(8)
Dim Verbose
Dim conections
'----------EDIT LINES
Verbose = 0     '1 FOR DEBUG MODE, 0 FOR SILENT MODE
intWarn = 20    'Warning level in Minutes
intCrit = 60    'Critical level in Minutes
'----------EDIT LINES
GetArgs()
If Wscript.Arguments.Count = 0 then
	help()
	wscript.quit(intError)
else
    intWarn = GetOneArg("-w")
	intCrit = GetOneArg("-c")
end if
pt "WARN: " & intWarn &vbcrlf& "CRIT: " & intCrit
'CALL SUB TO CHECK FOLDER FOR ANY LOG FILES
call checkcon
pt "Conexoes = " & conections
conections = cInt(conections)
intWarn = cInt(intWarn)
intCrit = cInt(intCrit)
'Verifica conforme WARN e CRIT
If (conections > intWarn) and (conections < intCrit) Then
			stroutput = "WARNING - " & conections & " conections |conections=" &conections
			intExit = intWarning
		Elseif (conections > intCrit)  Then
			stroutput = "CRITICAL - " & conections & " conections |conections="&conections
			intExit = intCritical
		Elseif conections <= intWarn Then
			stroutput = "OK - " & conections & " conections |conections="&conections
			intExit = intOK
end if
wscript.echo stroutput
wscript.quit(intExit)
Function checkcon
'Deletes Profiles older then 1 year, uses MS delprof tool
'Should have a timeout, sometimes it hangs
	dim strCmd
	dim objShell : Set objShell = WScript.CreateObject("WScript.Shell")
	Dim objExecObject
	strCmd = "cmd /c netstat -an |find /i " & chr(34) &"estab" & chr(34)& " /c" & strScriptPath
	pt strCmd
    Set objExecObject = objShell.Exec(strCmd)
	Do While Not objExecObject.StdOut.AtEndOfStream
    	    conections = objExecObject.StdOut.ReadLine()   'gets %username%
	loop
			trim(conections)
	pt conections
end function
Function Help()
'Prints out help
		Dim str
  		str="Verifica o numero de conexoes Estabelecidas de um windows ."&vbCrlF&vbCrlF
  		str=str&"cscript "& strScriptFile &"-w 30 -c 90"&vbCrlF
  		str=str&vbCrlF
		str=str&"-w min                     Warning "&vbCrlF
		str=str&"-c min                     Critical"&vbCrlF
		str=str&vbCrlF
		str=str&"                            Change Verbose Varible to 1 to Turn on debug mode."&vbCrlF
  		str=str&vbCrlF
  		str=str&"By Felipe Ferreira -  08/2010, version 1.0(For Nagios)." & vbCrlF
  		wscript.echo str
End Function
Function GetArgs()
'Get ALL arguments passed to the script
	'On Error Resume Next
	Dim f
	argcountcommand = WScript.Arguments.Count
	for f = 0 to argcountcommand - 1
		arg(f)=WScript.Arguments(f)
	next
End Function
Function GetOneArg(strName)
	'On Error Resume Next
	Dim i
	for i=0 to argcountcommand - 1
		if (Ucase(arg(i))=Ucase(strName)) then
			GetOneArg=arg(i+1)
			Exit Function
		end if
	next
End Function
sub pt(txt)
	if Verbose = 1 then
		wscript.echo txt
	end if
end sub

Leave a Reply

Your email address will not be published. Required fields are marked *