' Create Log folder under Forefront installation folder
' Retrieve the local installation path of Forefront
ForefrontInstallPath = RetrieveRegValue (REG_KEY & "Exchange Server","InstalledPath", 1)
If IsNull(ForefrontInstallPath) Then
WriteMOMEvent "TASK ERROR: Unable To Retrieve Forefront for Exchange Installation Path", 1, INSTALL_PATH_FAIL
ScriptContext.Quit
End If
If TextLogParameter = "true" then
CreateLogFolder()
End If
WriteLog "NULL"
WriteLog "Beginning Execution of EngineUpdate Script for " & EngineParameter & " engine."
'Set parameter to flag valid parameter assignment
Dim boolValid
boolValid = True
Select Case EngineParameter
Case "Norman"
EngineNumber = "u0"
Case "Microsoft"
EngineNumber = "u1"
'Case "NAI"
' EngineNumber = "u2"
Case "Sophos"
EngineNumber = "u3"
Case "Cairis"
EngineNumber = "u4"
Case "CAVet"
EngineNumber = "u5"
Case "Command"
EngineNumber = "u6"
Case "AhnLab"
EngineNumber = "u7"
Case "WormList"
EngineNumber = "u8"
Case "VBuster"
EngineNumber = "u9"
Case "Kaspersky"
EngineNumber = "u11"
Case "SpamCure"
EngineNumber = "u12"
' Case "sybarivcl"
' EngineNumber = "u13"
' Case "commtouch"
' EngineNumber = "u14"
Case Else
boolValid = False
WriteLog "WARNING: Invalid engine parameter passed - No update triggered"
WriteMOMEvent "Invalid engine parameter passed - No update triggered", 2, ENGINE_PARAM_INVALID
End Select
If boolValid Then
strParam = " " & EngineNumber & " " & UpdatePathParameter
strCommand = """" & ForefrontInstallPath & "\FSCStarter.exe" & """"
intResult = ShellExecute(strCommand,strParam)
WriteLog "Initiating engine update for " & EngineParameter & " engine"
WriteLog "Using update path: " & UpdatePathParameter
End If
'********************************************************************
'*
'* Function: RetrieveRegValue
'*
'* Purpose: Retrieves String Value from Registry
'*
'********************************************************************
Function RetrieveRegValue (Key, strValueName, intValueType)
' intValueType -> 1 = String Value
' -> 2 = DWORD Value
const HKEY_LOCAL_MACHINE = &H80000002
Dim strServerName
Dim objReg
Dim strRegValue
On Error Resume Next
Err.Clear
Set objReg=GetObject("winmgmts:\root\default:StdRegProv")
If Err.Number <> 0 Then
Err.Clear
strRegValue = NULL
Else
Select Case intValueType
Case 1
strErr = objReg.GetStringValue (HKEY_LOCAL_MACHINE,Key,strValueName,strRegValue)
Case 2
strErr = objReg.GetDWORDValue (HKEY_LOCAL_MACHINE,Key,strValueName,strRegValue)
End Select
' if reading the registry failes via wmi return error
If strErr <> 0 then
strRegValue = NULL
End If
End If
Set objReg = Nothing
RetrieveRegValue = strRegValue
End Function
'***********************************************************************
'*
'* Function: ShellExecute()
'*
'* Purpose: Sets up call to ANTUTIL for switching hooking mode
'*
'***********************************************************************
Dim objFSO
set objFSO = CreateObject ("Scripting.FileSystemObject")
If objFSO.FolderExists(ForefrontInstallPath & "\MOMLogs") = 0 then
objFSO.CreateFolder(ForefrontInstallPath & "\MOMLogs")
End If
Set objFSO = Nothing
End Function
'***********************************************************************
'*
'* Function: WriteLog()
'*
'* Purpose: Writes script activity and errors to a log file
'*
'***********************************************************************
Function WriteLog (strLogText)
If TextLogParameter = "true" Then
Dim objfs
Dim objf
Dim strTimeStamp
On Error Resume Next
Err.Clear
Set objfs = CreateObject("Scripting.FileSystemObject")
Set objf = objfs.OpentextFile(ForefrontInstallPath & "\MOMLogs\" & "Tasks.log", 8, False)
' If log file doesn't exist - create it
If Err.Number <> 0 Then
Set objf = objfs.CreatetextFile(ForefrontInstallPath & "\MOMLogs\" & "Tasks.log", False)
Err.Clear
End If
If strLogText = "NULL" then
objf.WriteLine("")
Else
strTimeStamp = Date & " " & Time & " "
objf.WriteLine(strTimeStamp & strLogText)
End If
End If