<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-ZA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Good Morning,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Has anyone updated/modified the DHCP plugin for xymon,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Currently we are using the following ext script to monitor our DHCP servers on 2008 however we seem to be running into issues on 2012<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks in advance.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Jorge<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">BBDHCP.VBS<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">~~~~~~~~~~~~~~<span style="color:#1F497D;mso-fareast-language:EN-ZA"><o:p></o:p></span></p>
<p class="MsoNormal">option Explicit<o:p></o:p></p>
<p class="MsoNormal">' BigBrother External Script for testing to see if Dhcp is up and responding on Window 2003 and above<o:p></o:p></p>
<p class="MsoNormal">' Gives Scope details running on the server specified With Active/Excluded and Available leases<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">' Installation<o:p></o:p></p>
<p class="MsoNormal">'               1) Modify the vairables below to match your system.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">'               2) Add the script to your externals list in bbntcfg on the DHCP Server.<o:p></o:p></p>
<p class="MsoNormal">'                               so that it runs at least every 6500 seconds<o:p></o:p></p>
<p class="MsoNormal">'               3) Make sure you set the Saved Logs Location to %BBHOME%\ext<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">' Author Graeme Shea, Shea Technology Pty Ltd. graeme AT shea.com.au<o:p></o:p></p>
<p class="MsoNormal">' Adapted from and very heavly based on work by Brett Wilson - Brett_Wilsons@hotmail.com and André Hugener<o:p></o:p></p>
<p class="MsoNormal">Dim Server, Alias, Yellow, Red, BBext, Colour, Col, WshShell, FileSys, OutDhcp, Version, BBextFolder<o:p></o:p></p>
<p class="MsoNormal">Dim Check, Dhcp, NoDhcp, Status, Scope, Line, u, Tokens, Tmp, InUse, Free, BB, BBin, pend, j<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">'---Vairables---<o:p></o:p></p>
<p class="MsoNormal">Server = "DHCPservername"       ' Dhcp Server to test (not neccessarily the server running from)<o:p></o:p></p>
<p class="MsoNormal">Alias  = "DHCPServername"  'Name machine is known at BB server "," instead of "."!!!<o:p></o:p></p>
<p class="MsoNormal">Yellow = 3                            ' Min Available Leases when BB turns Yellow
<o:p></o:p></p>
<p class="MsoNormal">Red    = 2                              ' Min Available Leases when BB turns Red<o:p></o:p></p>
<p class="MsoNormal">'---End Vairables---<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">'---Nothing to Change under this line---<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">'On Error Resume Next'<o:p></o:p></p>
<p class="MsoNormal">'-------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">' Version 0.1 Oringal version using dhcpcmd.exe for NT4 Resource kit<o:p></o:p></p>
<p class="MsoNormal">' Version 0.2 Uses builting Windows 2003 netsh command.<o:p></o:p></p>
<p class="MsoNormal">' Version 0.2.1 Fixed dialog error on 64bit systems.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Version = "0.2.1"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Set WshShell = WScript.CreateObject("WScript.Shell")<o:p></o:p></p>
<p class="MsoNormal">Set FileSys = CreateObject("Scripting.FileSystemObject")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On Error Resume Next<o:p></o:p></p>
<p class="MsoNormal">BBext = WshShell.RegRead("HKLM\SOFTWARE\bbwin\tmppath\")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">' If 64 bit system then reg file has moved and will raise an error.<o:p></o:p></p>
<p class="MsoNormal">If Err Then<o:p></o:p></p>
<p class="MsoNormal">                err.clear<o:p></o:p></p>
<p class="MsoNormal">                BBext = ("c:\progra~2\bbwin\tmp")'        <o:p>
</o:p></p>
<p class="MsoNormal">                If Err Then<o:p></o:p></p>
<p class="MsoNormal">                                MsgBox " Big Brother Client not installed. ",," Fatal Error. "<o:p></o:p></p>
<p class="MsoNormal">                End If<o:p></o:p></p>
<p class="MsoNormal">                on Error GoTo 0<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If BBext = "" Then<o:p></o:p></p>
<p class="MsoNormal">                MsgBox " Big Brother External Path not set. You need to set the Saved Logs Location " _<o:p></o:p></p>
<p class="MsoNormal">                                & VbCrLf & " using the bbntcfg utility. ",," Fatal Error. "<o:p></o:p></p>
<p class="MsoNormal">                                WScript.Quit<o:p></o:p></p>
<p class="MsoNormal">                End If<o:p></o:p></p>
<p class="MsoNormal">On Error GoTo 0<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">'Need short path names or else Netsh creates a c:\program file.<o:p></o:p></p>
<p class="MsoNormal">Set BBextFolder = FileSys.GetFolder(BBext)<o:p></o:p></p>
<p class="MsoNormal">BBext = BBextFolder.ShortPath<o:p></o:p></p>
<p class="MsoNormal">Status = "status " & Alias & ".dhcp "<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Dhcp = "cmd /c " & "Netsh.exe dhcp server \\"& Server & " show mibinfo > " & bbext & "\dhcp.txt"<o:p></o:p></p>
<p class="MsoNormal">WshShell.run Dhcp, 0, True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">' Check to see that Dhcp is running<o:p></o:p></p>
<p class="MsoNormal">Set Check = FileSys.OpenTextFile (bbext & "\dhcp.txt")<o:p></o:p></p>
<p class="MsoNormal">NoDhcp = Check.ReadLine<o:p></o:p></p>
<p class="MsoNormal">If InStr(1,NoDhcp, "Unable") OR InStr(1,NoDhcp, "Not Found")Then<o:p></o:p></p>
<p class="MsoNormal">                Dhcp = "No"<o:p></o:p></p>
<p class="MsoNormal">                Status = "red " &  Status & " red" & " " & Now() & Vbcrlf &_<o:p></o:p></p>
<p class="MsoNormal">                "Warning!! Dhcp Is not Running On Server - " & Server<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">' If Dhcp is running retrieve Active Scopes and lease numbers<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Do While Not check.AtEndOfStream<o:p></o:p></p>
<p class="MsoNormal">                Line = Check.ReadLine<o:p></o:p></p>
<p class="MsoNormal">                u = Instr(1,Line,"Subnet")<o:p></o:p></p>
<p class="MsoNormal">                if u <> 0 Then<o:p></o:p></p>
<p class="MsoNormal">                                tokens = Split( Line,"=")<o:p></o:p></p>
<p class="MsoNormal">                                tmp = Check.ReadLine<o:p></o:p></p>
<p class="MsoNormal">                                Inuse = Split( tmp,"=")<o:p></o:p></p>
<p class="MsoNormal">                                tmp = Check.ReadLine<o:p></o:p></p>
<p class="MsoNormal">                                Free =  Split( tmp,"=")<o:p></o:p></p>
<p class="MsoNormal">                                tmp = Check.ReadLine<o:p></o:p></p>
<p class="MsoNormal">                                pend =  Split( tmp,"=")<o:p></o:p></p>
<p class="MsoNormal">                <o:p></o:p></p>
<p class="MsoNormal">                j=(Cint(Free(1))+Cint(Inuse(1))+Cint(pend(1)))<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                If j < 1 Then<o:p></o:p></p>
<p class="MsoNormal">                        Colour = "blue"<o:p></o:p></p>
<p class="MsoNormal">                Else<o:p></o:p></p>
<p class="MsoNormal">                                                Colour = "green"<o:p></o:p></p>
<p class="MsoNormal">                                if Col < 1 Then<o:p></o:p></p>
<p class="MsoNormal">                                                Col = 1                      
<o:p></o:p></p>
<p class="MsoNormal">                                End If<o:p></o:p></p>
<p class="MsoNormal">                                <o:p></o:p></p>
<p class="MsoNormal">                                                If Cint(Free(1)) <= Yellow Then<o:p></o:p></p>
<p class="MsoNormal">                                                                Colour = "yellow"<o:p></o:p></p>
<p class="MsoNormal">                                        If Col < 2 Then<o:p></o:p></p>
<p class="MsoNormal">                                   Col = 2<o:p></o:p></p>
<p class="MsoNormal">                                        End If<o:p></o:p></p>
<p class="MsoNormal">                                                End If<o:p></o:p></p>
<p class="MsoNormal">                                <o:p></o:p></p>
<p class="MsoNormal">                                                If Cint(Free(1)) <= Red Then<o:p></o:p></p>
<p class="MsoNormal">                                                                Colour = "red"<o:p></o:p></p>
<p class="MsoNormal">                                Col = 3<o:p></o:p></p>
<p class="MsoNormal">                                                End If<o:p></o:p></p>
<p class="MsoNormal">                                End If<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                Scope = Scope & " Scope " & Tokens(1) & "  " & Fix(Inuse(1)) & "  Active/Excluded" &_<o:p></o:p></p>
<p class="MsoNormal">                                VbCrlf & "&" & Colour & " Scope " & Tokens(1) & "  " & Fix(Free(1)) & "  Available" &_<o:p></o:p></p>
<p class="MsoNormal">                VbCrlf & " Scope " & Tokens(1) & "  " & Fix(pend(1)) & "  Pending" & VbCrlf &_<o:p></o:p></p>
<p class="MsoNormal">                                "Status: " & Colour & VbCrlf & VbCrlf<o:p></o:p></p>
<p class="MsoNormal">                End If<o:p></o:p></p>
<p class="MsoNormal">Loop<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Colour = "red"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If Col = 0 Then<o:p></o:p></p>
<p class="MsoNormal">   Colour = "blue"<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal">If Col = 1 Then<o:p></o:p></p>
<p class="MsoNormal">   Colour = "green"<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal">If Col = 2 Then<o:p></o:p></p>
<p class="MsoNormal">   Colour = "yellow"<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If Dhcp <> "No" Then<o:p></o:p></p>
<p class="MsoNormal">                Status =  colour & "+2h " & Status & Colour & " " & Now() & Vbcrlf & _<o:p></o:p></p>
<p class="MsoNormal">                "Dhcp is running on Server " & Server & " with the following configuration" & VbCrLf<o:p></o:p></p>
<p class="MsoNormal">End If<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Set OutDhcp = filesys.CreateTextFile(BBext & "\dhcp", True)<o:p></o:p></p>
<p class="MsoNormal">OutDhcp.WriteLine Status<o:p></o:p></p>
<p class="MsoNormal">OutDhcp.WriteLine Scope<o:p></o:p></p>
<p class="MsoNormal">OutDhcp.WriteLine ""<o:p></o:p></p>
<p class="MsoNormal">OutDhcp.WriteLine "BBDhcp Version " & Version<o:p></o:p></p>
<p class="MsoNormal">Outdhcp.close <o:p></o:p></p>
<p class="MsoNormal">Check.close<o:p></o:p></p>
</div>

<P align=center><FONT size=1 face=Arial>This email and its contents are subject 
to an email legal notice that can be viewed at: </FONT><A 
href="http://www.naspers.com/disclaimer.php"><FONT size=1 
face=Arial>http://www.naspers.com/disclaimer.php</FONT></A><FONT size=1 
face=Arial> Should you be unable to access the link provided, please email us 
for a copy at </FONT><A href="mailto:csc@optinet.net"><FONT size=1 
face=Arial>csc@optinet.net</FONT></A></P>
<P align=center><FONT size=1 face=Arial>Hierdie e-pos en sy inhoud is onderhewig 
aan 'n regskennisgewing oor elektroniese pos wat gelees kan word by </FONT><FONT 
size=1 face=Arial><A 
href="http://www.naspers.com/afrikaans/voorbehoud.php">http://www.naspers.com/afrikaans/voorbehoud.php</A></FONT><FONT 
size=1 face=Arial> 'n Afskrif kan aangevra word by <A 
href="mailto:csc@optinet.net">csc@optinet.net</A></FONT></P>
</body>
</html>