Install switch requires full filepath

I’m installing an application that needs a separate config file to apply settings. With their latest version, they need the full filepath of the config file instead of just the name.
Pulling some info from the task I generated, I came up with something like this

msiexec.exe /i "PulseSecure91r7.msi" CONFIGFILE=C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\__Global\__Download\4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2\ComponentSetFull.pulsepreconfig /qn /norestart

The install appears to be hanging somewhere so something’s not right and I’m not convinced the pathname is correct either.
I base that off this bit in the action script:

//**Begin Preparation Marker
// Download all specified files
begin prefetch block
  add prefetch item name=5d9dae51b2226213c55115646a1ff91705fa1b49 sha1=5d9dae51b2226213c55115646a1ff91705fa1b49 size=21487616 url=SWDProtocol://127.0.0.1:52311/Uploads/5d9dae51b2226213c55115646a1ff91705fa1b49/PulseSecure91r7.msi.bfswd sha256=3de82f8b61fa7e26d1ca91058f68c7c00794b0a56a11e1b6b1d16df3f4f211fa
  add prefetch item name=4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2 sha1=4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2 size=2139 url=SWDProtocol://127.0.0.1:52311/Uploads/4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2/ComponentSetFull.pulsepreconfig.bfswd sha256=1465669af7bad40720e602998f939d87c34dadf5485801f3f1bf133a263d19aa
end prefetch block

// All SWD files will go into a folder in the clients __BESData folder. This folder gets cleared on every restart.
parameter "baseFolder" =  "__Download/"
// Move files into subfolders and unescape file names
move "__Download/5d9dae51b2226213c55115646a1ff91705fa1b49" "{parameter "baseFolder"}PulseSecure91r7.msi" 
move "__Download/4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2" "{parameter "baseFolder"}ZieglerComponentSetFull.pulsepreconfig" 

Any help is appreciated.

@Agro – it seems to me that the two .pulsepreconfig files are different.

CONFIGFILE=C:\Program Files (x86)\BigFix Enterprise\BES Client__BESData__Global__Download\4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2\ComponentSetFull.pulsepreconfig

seems to be different from:

“{parameter “baseFolder”}ZieglerComponentSetFull.pulsepreconfig”

Would you mind pasting your whole actionscript? It might be easier to find the issue. (I hope I am understanding your question correctly)

> //**Begin Preparation Marker
> // Download all specified files
> begin prefetch block
>   add prefetch item name=5d9dae51b2226213c55115646a1ff91705fa1b49 sha1=5d9dae51b2226213c55115646a1ff91705fa1b49 size=21487616 url=SWDProtocol://127.0.0.1:52311/Uploads/5d9dae51b2226213c55115646a1ff91705fa1b49/PulseSecure91r7.msi.bfswd sha256=3de82f8b61fa7e26d1ca91058f68c7c00794b0a56a11e1b6b1d16df3f4f211fa
>   add prefetch item name=4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2 sha1=4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2 size=2139 url=SWDProtocol://127.0.0.1:52311/Uploads/4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2/ZieglerComponentSetFull.pulsepreconfig.bfswd sha256=1465669af7bad40720e602998f939d87c34dadf5485801f3f1bf133a263d19aa
> end prefetch block
> 
> // All SWD files will go into a folder in the clients __BESData folder. This folder gets cleared on every restart.
> parameter "baseFolder" =  "__Download/"
> // Move files into subfolders and unescape file names
> move "__Download/5d9dae51b2226213c55115646a1ff91705fa1b49" "{parameter "baseFolder"}PulseSecure91r7.msi" 
> move "__Download/4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2" "{parameter "baseFolder"}ZieglerComponentSetFull.pulsepreconfig" 
> 
> // Log setup
> parameter "mainSWDLogFolder" = "{parent folder of client folder of current site}/__Global/SWDDeployData"
> folder create "{parameter "mainSWDLogFolder"}"
> parameter "logFile" = "SWD_DeploymentResults.log"
> 
> //**End Preparation Marker
> delete __createfile
> parameter "logFolder" = "{parameter "mainSWDLogFolder"}"
> // Run setup process
> delete run.bat
> 
> // Use .bat to set working directory to packages root, for setup command.
> createfile until _end_
> @ECHO OFF
> cd "{parameter "baseFolder"}"
> rem // See comments at the beginning of this action for an explanation of the comment markers.
> echo %DATE% %TIME% >> "{parameter "logFolder"}\{parameter "logFile"}"
> echo Action ID: {id of active action} >> "{parameter "logFolder"}\{parameter "logFile"}"
> rem //**Begin Command Marker
> echo Command: msiexec.exe /i "PulseSecure91r7.msi" CONFIGFILE=C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\__Global\__Download\4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2\ZieglerComponentSetFull.pulsepreconfig /qn /norestart >> "{parameter "logFolder"}\{parameter "logFile"}"
> set errorlevel=
> msiexec.exe /i "PulseSecure91r7.msi" CONFIGFILE=C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\__Global\__Download\4bb7ad2f5e0e2ee3d6df6c6c873ab435e78a59d2\ZieglerComponentSetFull.pulsepreconfig /qn /norestart >> "{parameter "logFolder"}\{parameter "logFile"}" 2>&1
> set SWDExitCode=%errorlevel%
> rem //**End Command Marker
> 
> echo Return code: %SWDExitCode% >> "{parameter "logFolder"}\{parameter "logFile"}"
> echo. >> "{parameter "logFolder"}\{parameter "logFile"}"
> exit %SWDExitCode%
> _end_
> 
> move __createfile run.bat
> // You will not be able to stop or take action on an applicable BigFix Client until your installer completes.
> // So ensure no user input is required.
> // If your package absolutely must interact with the user, replace 'override wait' with 'override run' and 'wait' with 'run'.
> override wait
> hidden=true
> completion=job
> wait run.bat
> 
> //**Begin Closing Marker
> // Get the return code of the previous action.
> parameter "returnCode" = "{exit code of action}"
> 
> 
> // Task will now exit.
> exit {parameter "returnCode"}
> //**End Closing Marker

The configfile path has spaces in it so you’ll probably need to quote it. You should also take advantage that SWD has already renamed the file, so you don’t need to hardcore the cache path. You can use {pathname of download folder} to reference the full path to __Download.

Try changing the msiexec line to

msiexec.exe /i "PulseSecure91r7.msi" CONFIGFILE="{pathname of download folder}\ZieglerComponentSetFull.pulsepreconfig" /qn /norestart >> "{parameter "logFolder"}\{parameter "logFile"}" 2>&1

Thanks Jason. I gave that a try, but it still did not apply the settings.

Check the log file that it is generating

Jason, this actually worked. I just needed to restart the app for the settings to apply. Thank you so much

1 Like