Dim fwPolicy2, strRuleState, oParams, oAPI
Dim strOpc, strSnmpPort, strTrapPort, strAppName
Dim ObjError, strMessageToUse
Set oAPI = CreateObject("Mom.ScriptAPI")
Set oParams = WScript.Arguments
if oParams.Count < 4 then
strMessageToUse = "The script '" & SCRIPT_NAME & "' didn't execute successfully because some parameters were missing: Param Count(" & CStr(oParams.Count) & ")"
CreateEvent EVENTID_SUCCESS, EVENT_TYPE_INFORMATION, strMessageToUse
End if
If ObjError.Number <> 0 Then
strMessageToUse = "Fail Creating FW Policy Object - Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
CreateEvent EVENTID_SUCCESS, EVENT_TYPE_INFORMATION, strMessageToUse
End If
Sub ExecuteRuleAction(strOpc, strApplicationName)
Dim rule, RulesObject
set RulesObject = fwPolicy2.Rules
for each rule in RulesObject
if rule.ApplicationName=strApplicationName and (rule.Protocol=NET_FW_IP_PROTOCOL_ICMPv4 or (rule.Protocol=NET_FW_IP_PROTOCOL_UDP and (rule.RemotePorts=strSnmpPort or rule.LocalPorts=strSnmpPort or rule.LocalPorts=strTrapPort))) then
Select Case strOpc
Case ScriptOpctionEnable
strRuleState = EnableRule(rule)
WScript.Echo(strRuleState)
Case ScriptOpctionShowState
strRuleState = GetState(rule)
WScript.Echo(strRuleState)
End Select
end if
next
End Sub
Sub CreateEvent(lEventID, lEventType, strMessage)
oAPI.LogScriptEvent SCRIPT_NAME,lEventID, lEventType, strMessage
WScript.Echo(strMessage)
WScript.Quit
End Sub
Function GetState(ruleToCheck)
Dim strRuleState
if ruleToCheck.Enabled then
strRuleState = "Rule " & ruleToCheck.Name & " is Enabled"
else
strRuleState = "Rule " & ruleToCheck.Name & " is Disabled"
end if
GetState = strRuleState
End Function
Function EnableRule(ruleToEnable)
Dim bIsEnabled
Dim strRuleState
Dim ObjErr, strMessageToUse
Set ObjErr = New Error
On Error Resume Next
ruleToEnable.Enabled = true
ObjErr.Save
On Error Goto 0
If ObjErr.Number <> 0 Then
strMessageToUse = "Fail Enabling Rule " & ruleToEnable.Name & " - Error Number: " & ObjErr.number & " Error Details: " & ObjErr.Description
CreateEvent EVENTID_SUCCESS, EVENT_TYPE_INFORMATION, strMessageToUse
End If
bIsEnabled = ruleToEnable.Enabled
ObjErr.Save
On Error Goto 0
If ObjErr.Number <> 0 Then
strMessageToUse = "Fail Enabling Rule " & ruleToEnable.Name & " - Error Number: " & ObjErr.number & " Error Details: " & ObjErr.Description
CreateEvent EVENTID_SUCCESS, EVENT_TYPE_INFORMATION, strMessageToUse
End If
if bIsEnabled then
strRuleState = "Rule " & ruleToEnable.Name & " was Enabled Successfully"
else
strRuleState = "Fail to Enabled Rule " & ruleToEnable.Name
end if
EnableRule = strRuleState
End Function
Class Error
Private m_lNumber
Private m_sSource
Private m_sDescription
Private m_sHelpContext
Private m_sHelpFile
Public Sub Save()
m_lNumber = Err.number
m_sSource = Err.Source
m_sDescription = Err.Description
m_sHelpContext = Err.HelpContext
m_sHelpFile = Err.helpfile
End Sub
Public Sub Raise()
Err.Raise m_lNumber, m_sSource, m_sDescription, m_sHelpFile, m_sHelpContext
End Sub
Public Sub Clear()
m_lNumber = 0
m_sSource = ""
m_sDescription = ""
m_sHelpContext = ""
m_sHelpFile = ""
End Sub
Public Default Property Get Number()
Number = m_lNumber
End Property
Public Property Get Source()
Source = m_sSource
End Property
Public Property Get Description()
Description = m_sDescription
End Property
Public Property Get HelpContext()
HelpContext = m_sHelpContext
End Property
Public Property Get HelpFile()
HelpFile = m_sHelpFile
End Property
End Class </Script></ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="Script">
<Node ID="PassThrough"/>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
<TriggerOnly>true</TriggerOnly>
</ProbeActionModuleType>