'---------------------------------------------------------------------------------------------------------------------------- ' Script : CitrixLicCount.vbs ' Description : Check Licenses in use ' Author : Super Pippo ' Date : 7.10.2005 ' Revision : ' Argument : none '---------------------------------------------------------------------------------------------------------------------------- smtpServer = "email server" sFrom = "from email" sSL = "Citrix Licensing Warning" sCSL = "Critical Citrix Licensing Warning" Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing" Const cdoSendUsingPort = 2 '//This is for network, for a localhost smtp server use 1 Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver" Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport" Public countLicenses CriticalLimit = 83 'choose the limit that triggers the critical alarm WarningLimit = 70 'choose the limit that triggers the warning alarm CheckMPSLicUsage Function CheckMPSLicUsage CommandLine = "c:\program files\citrix\licensing\ls\lmstat -a" Set objShell = CreateObject("WScript.Shell") Set oExec = objShell.Exec(CommandLine) countLicenses = 0 Do Until oExec.StdOut.AtEndOfStream Input = oExec.StdOut.ReadLine if InStr(Input, "v2005.0427") Then countLicenses = countLicenses + 1 end if Loop End Function If countLicenses > CriticalLimit Then sRecipients = "support email address" Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields strFileName = "C:\temp\CitrixLicenseCount.txt" Set objFSO = CreateObject("scripting.filesystemobject") Set objTextStream = objFSO.OpenTextFile(strFileName, 2, True) objTextStream.WriteLine "Critical: Citrix License Count is " & countLicenses With Flds .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = smtpServer .Update End With With iMsg Set .Configuration = iConf .To = sRecipients .CC = sCopy .From = sFrom .Sender = sSender .Subject = sCSL .TextBody = "Critical: Citrix Licensing server is using " & countLicenses & " licenses. Critical limit is: " & CriticalLimit .Send End With Set iMsg = Nothing Set iConf = Nothing Elseif countLicenses WarningLimit Then sRecipients = "support email address" Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields strFileName = "C:\temp\CitrixLicenseCount.txt" Set objFSO = CreateObject("scripting.filesystemobject") Set objTextStream = objFSO.OpenTextFile(strFileName, 2, True) objTextStream.WriteLine "Warning: Citrix License Count is " & countLicenses With Flds .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = smtpServer .Update End With With iMsg Set .Configuration = iConf .To = sRecipients .CC = sCopy .From = sFrom .Sender = sSender .Subject = sSL .TextBody = "Citrix Licensing server is using " & countLicenses & " licenses. Critical limit is: " & CriticalLimit .Send End With Set iMsg = Nothing Set iConf = Nothing End if