Dim oArgs, oAPI, oDisc, oInst, oSNMP
Set oArgs = WScript.Arguments
Dim SourceID, ManagedEntityId, TargetComputer, haStateNum, haStateString, DeviceKey
Dim hostNameString, haPeerIPString, CommunityString, BuildversionString, lReturnCode
Dim EvtErrorMsg
'Const haPeerState= "1.3.6.1.4.1.5951.4.1.1.23.3.0"
'This represents the state of the failover peer NetScaler whether 'Primary or Secondary (0->standlone, 1->secondary, 2->primary).
'Const haPeerIPAddress= "1.3.6.1.4.1.5951.4.1.1.23.2.0"
'Const buildVersion= "1.3.6.1.4.1.5951.4.1.1.1.0"
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oSNMP = CreateObject("SScripting.SNMPManager")
if IsNull (oSNMP) then
'Log event
Call oAPI.LogScriptEvent("Citrix.NetScaler.Discovery.vbs", 9001, 1, "SScripting.SNMPManager object creation failed.")
Set oSNMP = Nothing
Set oAPI = Nothing
Exit Sub
end if
if lReturnCode <> 0 then
Dim temp
temp = "Encoded CommunityString: " & CommunityString & "decoded: " & oSNMP.Community
EvtErrorMsg = ErrorMessage(TargetComputer, temp , lReturnCode)
Call oAPI.LogScriptEvent("Citrix.NetScaler.Discovery.vbs", 9001, 1, EvtErrorMsg)
Set oSNMP = Nothing
Set oAPI = Nothing
Exit Sub
end if
if haStateNum = "0" then
haStateString = "Standalone"
elseif haStateNum = "1" then
haStateString = "Secondary"
elseif haStateNum = "2" then
haStateString = "Primary"
else
haStateString = "Unknown"
end if
'HOST NAME POPULATION
hostNameString = HostName(TargetComputer)
'HAPEERIP POPULATION
haPeerIPString = oSNMP.Variables.Item(2).Value
If haPeerIPString = "0.0.0.0" then
haPeerIPString = "-"
end If
'BUILD VERSION
BuildversionString = oSNMP.Variables.Item(3).Value
set oDisc = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
oDisc.IsSnapshot = True
set oInst = oDisc.CreateClassInstance("$MPElement[Name='Citrix.NetScaler.NetscalerDevice']$")
If Byte3 >= 0 Then
Data = Data & ChrB((Byte2 And 15) * 16 + Byte3 \ 4)
Else
Data = Data & ChrB((iterator * 3 \ 4 + 1) = (Byte2 And 15) * 16)
End If
If Byte4 >= 0 Then
Data = Data & ChrB((Byte3 And 3) * 64 + Byte4)
End If
Next
Base64ToBSTR = Data
End Function
Function ErrorMessage(ByVal vTargetComputer, ByVal vCounters, ByVal vErrorCode)
Dim ErrorString
Dim ErrorStringHeader
Dim SNMPError(6)
ErrorStringHeader = "SNMP GET for Device:" & vTargetComputer & ":Counters :" & vCounters
SNMPError(0) = ErrorStringHeader & ": SNMP Get / GetNext Successfull"
SNMPError(1) = ErrorStringHeader & ": Err-10:SNMP Variable OID Invalid"
SNMPError(2) = ErrorStringHeader & ": Err-40:Data Too Big to fit in Single SNMP message"
SNMPError(3) = ErrorStringHeader & ": Err-50:SNMP Request Timed-out"
SNMPError(4) = ErrorStringHeader & ": Err-60:SNMP Unspecified Error"
SNMPError(5) = ErrorStringHeader & ": Err-70:SNMP Variable List Empty"
SNMPError(6) = ErrorStringHeader & ": Err-80:SNMP Support Not Available"
ErrorString = "Not Specified"
Select Case vErrorCode
Case 0
ErrorString = SNMPError(0)
Case 10
ErrorString = SNMPError(1)
Case 40
ErrorString = SNMPError(2)
Case 50
ErrorString = SNMPError(3)
Case 60
ErrorString = SNMPError(4)
Case 70
ErrorString = SNMPError(5)
Case 80
ErrorString = SNMPError(6)
End Select