In the past, I have had no issues installing Spirion using Bigfix till they released version 13… With this newer version Spirion started to use ERLANG (OCR) and RabbitMQ Database. We have build the Custom MSI as per usual and are had it hang when installing via the usual command line
wait “{pathname of system folder & “\msiexec.exe”}” /i “{(pathname of client folder of current site) & “__Download\Spirion-Custom.msi”}” /qn /l*vx “C:\Temp\Spirion.log”
Looking at the log, its the RabbitMQ where it stops , and it appears to be waiting for a user input… I did some research and it turns out that RABBITMQ cannot be installed as system as it ignores the required Environment variables to point to ERLANG_HOME and RABBITMQ_BASE. As a work around, within the action script, I create those env variables and it kind of installs but never reports back to the Spirion Server console . This is the link to the article I found about this NSIS installer silent install not supported in Windows upgrades · Issue #264 · rabbitmq/rabbitmq-server · GitHub
Specifically the quote " I don’t know if this is an issue that can be remedied, but I’d like to add that we have found that the NSIS installer run with the /S argument for silent mode install cannot be run as the system account “NT AUTHORITY\SYSTEM”. When it is run this way, some of the functionality of the installer is bypassed. In particular, the installer ignores the installer configuration environment variables listed here, specifically RABBITMQ_BASE, leading to the failure to create the db and logs folders."
So my actionscript is this.
action uses wow64 redirection false
prefetch the file
extract the file
delete __createfile
delete powershell.ps1
// create the Required environment variables
createfile until END_OF_FILE
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V "ERLANG_HOME"
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V "RABBITMQ_BASE"
[Environment]::SetEnvironmentVariable("ERLANG_HOME", "C:\Program Files\ERLANG OTP", "Machine")
[Environment]::SetEnvironmentVariable("RABBITMQ_BASE", "{value "APPDATA" of key "Volatile Environment" of current user key (logged on user) of registry}", "User")
END_OF_FILE
move __createfile powershell.ps1
override wait
hidden=true
RunAs=currentuser
completion=job
wait { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1
//poor mans pause for about 10 secs to allow time for env variables to be set and recognised for the following
wait cmd /C ping 127.0.0.1 -n 10 -w 1000> nul
//now install the package
wait "{pathname of system folder & "\msiexec.exe"}" /i "{(pathname of client folder of current site) & "\__Download\Spirion-Custom.msi"}" /qn /l*vx "C:\Temp\Spirion.log"
The above installs ok but doesnt communicate with the spirion server.
So I ammended the last block “Install the package” to install as the current user using the same override wait . It attempted to install , bit failed with a 1603 error.
So referring back to the github link, the only options I see are to add ALL the environment variables listed in the article to System where possible…
as an FYI, this installs without any futzing about when pushed from a GPO… Does anyone have any suggestions or exerience with SPirion and or RabbitMQ?