Option Explicit 'On Error Resume Next Dim sAltirisBaseDir, sAeXConfigPath Dim bSelective Dim sDialogMsg Dim objRegistry, objFSO, objShell Dim arrProducts(16,2) Dim arrRequestedProducts Dim intArrayCounter Dim sConfigPath Dim J Set objRegistry = CreateObject("WScript.shell") set objFSO = CreateObject("Scripting.FileSystemObject") sAltirisBaseDir = objRegistry.RegRead("HKLM\SOFTWARE\Altiris\InstallPath") sAeXConfigPath = sAltirisBaseDir + "Notification Server\Bin\AeXConfig.exe" SetupProducts If WScript.Arguments.Count <> 1 Then ShowUsage WScript.Quit(0) Else arrRequestedProducts = Split(LCase(WScript.Arguments.Item(0)), ",") If UBound(arrRequestedProducts) = 0 And UCase(arrRequestedProducts(0)) = "ALL" Then sDialogMsg = "Confirm you wish to reconfigure ALL installed Arellia products" bSelective = FALSE Else sDialogMsg = "Confirm Selective repair of " & UBound(arrRequestedProducts)+1 & " Arellia products" bSelective = TRUE End If If MsgBox(sDialogMsg, 1, "Final Confirmation") = vbCancel Then WScript.Quit(-2) End If End If For J=0 To UBound(arrProducts) If (bSelective = TRUE And ExistsInArray(arrRequestedProducts, arrProducts(J,0))) Or (bSelective = FALSE) Then sConfigPath = sAltirisBaseDir + "Arellia\" + arrProducts(J,1) + "\" + arrProducts(J,0) + ".nsconfig" If objFSO.FileExists(sConfigPath) Then RunConfig sConfigPath End If End If Next '-------------------------------------------------------------------------------------------------------------- Function ShowUsage '-------------------------------------------------------------------------------------------------------------- Dim sUsage sUsage = "--------------------------------------------------------------------------------" & vbCrLf & _ "Runs AeXConfig.exe /configure for the specified Arellia products" & vbCrLf & _ " " & vbCrLf & _ "Usage:" & vbTab & "ConfigureArellia.vbs [ALL|product1[,product2]]" & vbCrLf & vbCrLf & _ "--------------------------------------------------------------------------------" & vbCrLf & vbCrLf & _ "Arellia Products that are currently installed:" & vbCrLf & _ " " & vbCrLf For J=0 To UBound(arrProducts) sConfigPath = sAltirisBaseDir + "Arellia\" + arrProducts(J,1) + "\" + arrProducts(J,0) + ".nsconfig" If objFSO.FileExists(sConfigPath) Then sUsage = sUsage + vbTab + arrProducts(J,0) + vbCrLf End If Next WScript.Echo sUsage End Function '-------------------------------------------------------------------------------------------------------------- Function ExistsInArray(Array, Key) '-------------------------------------------------------------------------------------------------------------- ExistsInArray = (PosInArray(Array, Key) > -1) End Function '-------------------------------------------------------------------------------------------------------------- Function PosInArray(Array, Key) '-------------------------------------------------------------------------------------------------------------- Dim intUpper, intLoop intUpper = UBound(Array) For intLoop = LBound(Array) to intUpper If CStr(UCase(Array(intLoop))) = CStr(UCase(Key)) Then PosInArray = intLoop Exit Function End If Next PosInArray = -1 End Function '-------------------------------------------------------------------------------------------------------------- Function SetupProducts '-------------------------------------------------------------------------------------------------------------- intArrayCounter = 0 bSelective = FALSE AddProduct "ArelliaCommon", "ArelliaCommon\Config" AddProduct "ArelliaCommonReportPack", "ArelliaCommon\Config" AddProduct "ArelliaConsoles", "Consoles\Config" AddProduct "FileInventory", "FileInventory\Config" AddProduct "FileInventoryReport", "FileInventory\Config" AddProduct "FileInventoryAgentPack", "FileInventory\Config" AddProduct "LocalSecurity", "LocalSecurity\Config" AddProduct "LocalSecurityReportPack", "LocalSecurity\Config" AddProduct "LocalSecurityAgentPack", "LocalSecurity\Config" AddProduct "ApplicationControl", "ApplicationControl\Config" AddProduct "ApplicationControlReportPack", "ApplicationControl\Config" AddProduct "ApplicationControlAgentPack", "ApplicationControl\Config" AddProduct "ApplicationControlVerifierPack", "ApplicationControl\Config" AddProduct "SecurityAnalysis", "SecurityAnalysis\Config" AddProduct "SecurityAnalysisReportPack", "SecurityAnalysis\Config" AddProduct "SecurityAnalysisAgentPack", "SecurityAnalysis\Config" AddProduct "DirectoryServices", "DirectoryServices\Config" End Function '-------------------------------------------------------------------------------------------------------------- Function AddProduct(Name, Path) '-------------------------------------------------------------------------------------------------------------- arrProducts(intArrayCounter,0) = Name arrProducts(intArrayCounter,1) = Path intArrayCounter = intArrayCounter + 1 End Function '-------------------------------------------------------------------------------------------------------------- Function RunConfig(Path) '-------------------------------------------------------------------------------------------------------------- Set objShell = WScript.CreateObject("WScript.Shell") Dim objResult WScript.Echo "Configuring", Path objResult = objShell.Run("""" + sAeXConfigPath + """ /configure """ + Path + """", 6, TRUE) If objResult <> 0 Then WScript.Echo "There was a problem importing", Path End If End Function