Home > Nagios, plugins, Windows > check_con.vbs

check_con.vbs

March 25th, 2014 Leave a comment Go to comments

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

Categories: Nagios, plugins, Windows Tags:
  1. No comments yet.
  1. No trackbacks yet.

VAMOVE *

*