We are attempting to deploy call recording software that requires at least 4-5 MSI installs per agent and supervisor machine. We have BAT scripts to accomplish this for both agent and supervisor. What is the best way to utilize Bigfix for this? I’d like to utilize Bigfix to download the MSIs if possible as we don’t have file servers to hang a share off of - using BOX in the organization. Any assistance would be greatly appreciated.
I’d start with the Manage Software Distribution dashboard. It can handle uploading your files to the BigFix server and creating Tasks to deploy to the clients.
Since you need to run multiple MSI packages, you’ll need to customize the generated ActionScript. The wizard has some links to docs that should help.
.
Ok, thanks for the reply. Obviously I’ve only ever used the Software Distribution Wizard for one package at a time. Few questions:
If I select the folder option, does that download the folder with all MSIs to the machine? And that is to the __Download folder?
In our BAT script we are setting a directory location where the MSIs are located and then setting an install directory as well. Would the MSIs directory be the __Download folder for the BES Client?
Which is better to do - place the BAT script in the folder being downloaded to the machine and then call it from the action script or create the BAT script from the action script? Anyone have a template of what this might look like?
When you select a folder, the folder containing MSIs would be downloaded to the client and decompressed to __Download. You could either include the .BAT in the folder before you upload it, or build the .bat on the fly in the action script and reference __Download\package1.msi, __Download\package2.msi, etc.
How does the below action script look? You said the folder i select (called Verint in this case) gets extracted in the __Download folder - so the MSIS DIR would just be __Download and not __Download\Verint?
prefetch ba2d9e7a4d2a206030e6d7cb67bdd097966cca9e sha1:ba2d9e7a4d2a206030e6d7cb67bdd097966cca9e size:225269469 http://servername.domain.COM:52311/Uploads/ba2d9e7a4d2a206030e6d7cb67bdd097966cca9e/Verint.tmp sha256:39cd6475aeb5e1d9fb930e325d6495dfd3a14a0975a5dc6fd6927431a3353ca0
extract ba2d9e7a4d2a206030e6d7cb67bdd097966cca9e
delete __createfile
// CREATEFILE
createfile until END_OF_FILE
@echo off
setlocal
REM The script uses parameters for silent reboot when reboot is required
REM Continue running the script after each reboot until each script is installed successfully
REM If installation fails, the EXIT_CODE is 1
set MSIS_DIR=__Download\Verint
set INSTALLFOLDER=C:\Program Files\Verint\DesktopApplications
SET EXIT_CODE=0
echo Desktop Resources Installation
msiexec -i "__Download\Verint\DesktopResources-KB190992-Verint-15.2.7.15.msi" USE_COMMAND_LINE=1 TARGETDIR="%INSTALLFOLDER%" /qn
IF %errorlevel% NEQ 0 (
SET /A EXIT_CODE=1
echo ---installer failed
) ELSE (
echo ---installer succeeded
)
echo Screen Capture Module
msiexec /i "__Download\Verint\ScreenCapture-KB181217-15.2.5.658.msi" USE_COMMAND_LINE=1 INSTALLDIR="c:\CaptureService\" ENCRYPTION_DATAENCRYPT=TRUE CONN_INTG_SVC=TRUE INTG_SERVERS=servername.com:port,servername.com:port /qn
IF %errorlevel% NEQ 0 (
SET /A EXIT_CODE=1
echo ---installer failed
) ELSE (
echo ---installer succeeded
)
echo Desktop Connection Manager
msiexec /i "__Download\Verint\DesktopConnectionManager-KB181233-15.2.7.14.msi" SERVERADDR=servername.com DRSERVER=MyDRServ USEFQDN=Yes USEHTTPS=Y /qn
IF %errorlevel% NEQ 0 (
SET /A EXIT_CODE=1
echo ---installer failed
) ELSE (
echo ---installer succeeded
)
echo Desktop Messaging Client
msiexec /i "__Download\Verint\DesktopMessagingClient-KB192725-15.2.7.17.msi" AUTOSTART=Y /qn
IF %errorlevel% NEQ 0 (
SET /A EXIT_CODE=1
echo ---installer failed
) ELSE (
echo ---installer succeeded
)
END_OF_FILE
delete agent.bat
move __createfile agent.bat
override wait
hidden=true
completion=job
wait agent.bat
Honestly it usually takes me a couple of tries before I get the folder structure right. It depends somewhat on what folder level you selected to upload through the dashboard, I’m not sure whether you’ll see everything in the root directory __Download or if it would create __Download\Verint for you.
We tested this today and it completed on the machine however confirmed with user the software did not install. I would Imagine if the folder structure wasn’t correct excuting the MSI, the would have been a failure in the action info which there wasn’t. Thoughts?
Checking the logs is a good first step. Also from the console you can check the Exit Code of the action.
It looks like the batch file itself does some checking and should return an error code in %ERRORLEVEL%, and we should see that as the exit code of the action - but we don’t base the action’s success or failure on that code.
You could add your own trap for that - after the batch executes, you could add an action script command to terminate if the batch file returned a non-zero code
continue if {exit code of action = 0 or exit code of action = 3010}
edit: Added exit code checks for 0 or 3010 (3010 indicating a successful install that requires a reboot to complete)
One thing that I like to do is use “Compress folders at depth 0” whenever I’m deploying a folder structure and specify a Root folder during the extract.
In the task I modify the extract command like so: extract "Quadro_T1000_461.bftemp" "{parameter "baseFolder"}/Root"
This ensures that everything will be in the Root folder or whatever you decide to call it later on in the script.
For instance. later in the action I may copy it to C:\Windows\Temp and I can move like so: waithidden cmd /C xcopy /y /s /c /i __Download\Root\"." C:\Windows\Temp\Root\
And then run it from there. waithidden cmd /C "c:\windows\temp\Root\Win10-DCH_64\International\setup.exe" -s -noeula -noreboot
You may have to watch what’s happening on the endpoint, what the directory structure looks like after extraction, and whether the install command lines work when you run them manually.
I don’t know your software GUIDs, but I can give an example for the BigFix Agent.
q: exists key "{FE0AB6C5-C40A-47AD-A44B-0F7A273B68DD}" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" of (registry;native registry)
Hi all, would the above action script that was provided above in which a BAT script is being created, would that need elevated priviledges to run? I would imagine if it did, it would fail?
I haven’t tried this in a very long time, so I have no clue if it still works, but I have a Python script that takes a folder of MSI files as input and generates Installer and Uninstaller tasks in BigFix from them:
Even though it is generic python, the msilib module it uses is windows only.
As always, thanks very much to all for the replies.
The BAT script works when it is used manually, and it also states that it completes via Bigfix as well since there are some exit code checks built to it and also in the Bigfix action script. However, Vendor is claiming that when the install is done via Bigfix, certain folders do not get created from the install.
This is a terrible convoluted application we are installing so I don’t see anything being wrong with Bigfix. I know Bigfix runs as a system account, and figured it had enough privileges as we have never had an issue pushing software before. Just wanted to confirm things. Thanks again.