I am new to Bigfix relevance language. I have tried installing Pythong using .msi and .exe and for both I am not getting error and can see action ran successfully but when checking system not able to find python installed any where. Could someone please have a look at my action script and see where I need improvement.
//Quit Python if it is running
if {exists running application “python.exe”}
waithidden taskkill /F /IM python.exe
endif
//Uninstall Older Versions
If {exists key “(DCD5B320-89D9-4C7C-9E8B-84496588744e)” whose ((value “Displayname” of it as string contains “Python” ) AND (it < “3.7.3”) of (value “DisplayVersion” of it as string as version) AND (value “UninstallString” of it as string as lowercase contains “uninstall”)) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry}
waithidden {value “UninstallString” of key “(DCD5B320-89D9-4C7C-9E8B-84496588744e)” whose ((value “Displayname” of it as string contains “Python”) AND (it < “3.7.3”) of (value “DisplayVersion” of it as string as version) AND (value “UninstallString” of it as string as lowercase contains “uninstall”)) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry} /S
endif
Generally I’d try installing it manually, through psexec, to see if there are any messages displayed. In this case though, I think you’re missing a directory separator. The ‘pathname of client folder of current site’ won’t come with a trailing backslash, so try
wait “{pathname of system folder & “\msiexec.exe”}” /i “{(pathname of client folder of current site) & “\__Download\python-3.4.4.msi”}” /quiet
emulates the same kind of environment in which the BigFix client runs - 32-bit shell, running as LocalSystem.
The most common issues would be that it needs a 64-bit shell, in which case you’d add
action uses wow64 redirection false
to the actionscript before running the ‘wait’ command. Otherwise, if there is some kind of prerequisite, you may get a message stating that when you run the installer via psexec.
My Python fixlet renames the download to “python.msi” in the ‘add prefetch item’ statement so I don’t have to update the rest of the script when I change versions. Here are the rest of my install commands (this for Python 2.7)
action uses wow64 redirection false
waithidden msiexec.exe /i "{pathname of file "python.msi" of download folder}" /qn ALLUSERS=1 ADDLOCAL=ALL REBOOT=ReallySuppress