Software Deployment using BigFix

(imported topic written by Sitaram91)

Hi, Can someone help me by answering my below queries?

  1. How to do the Software upgrades (by automatically detecting older versions, or using some logic).

  2. All the sources of deployed applications will be available in local client systems?

  3. Software Deployment can be done based on Active Directory Security Groups?

  4. How to generate software inventory using Bigfix?

Thanks,

Sitaram

(imported comment written by BenKus)

Hi Sitaram,

  1. You can do this by crafting relevance to detect the older versions of software (based on registry values or registered application versions or service version or whatever method). The software distribution wizard will allow you to create relevance easily and you can modify the generated relevance if you need to do something more sophisticated.

  2. I am not sure what you mean by this question… The packages (MSIs, exes, etc) will be downloaded to the agent and it will execute as you specify.

  3. Software deployment can be done based around any property in BES (the same way you target actions for patching, configuration changes, and so on)… So you can use AD path info, computer groups, location, subnet, name, or combinations of these… AD Security groups specifically would be available if you add a property to your system to list AD groups.

  4. It is built into the BES License and Inventory site… Simply activate the Analyses for hardware, installed applications, Office info, Adobe info, VMWare info, and so on… There are built-in properties for Windows, Unix, Linux, and Mac.

Ben

(imported comment written by Sitaram91)

hi Ben,

Thanks for your reply.

  1. With the help of relevance i am able to find the machines having older version of softwares and deploy the new package to the filtered machines. But the problem here is it is not uninstalling the older versions before it install the newer version. Also if the old application is in use (say acrobat is running), it is failing to install the newer version and throwing msi errors in event viewer. But in console, i am not getting any errors. Any work around for my requirement?

  2. If i deploy 10 applications to my machines (consider the remote machines), all the sources (dumps) of 10 applications should be available in client computers locally (on local HDD). This is very helpful in future installations/repairs. Let me know if i am not clear

  3. I am not clear about the point you are saying. Where i need to add the property to the system?(you mean in description field). My intension behind using security groups for deployment is, its very managed and if i need to install the software on new machines, i will just add it to respective security group

  4. YES. I could able to get the inventory after enabling the Analyses. Thanks for helping me out on this

Thanks,

Sitaram

(imported comment written by brolly3391)

Hello Sitaram,

Regarding #1. Often you can find the command for the uninstall of an existing application in the registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{AC76BA86-0000-7EC8-7489-000000000605}

displayname = Adobe Acrobat and Reader 6.0.5 Update

uninstallString = MsiExec.exe /I{AC76BA86-0000-7EC8-7489-000000000605}

When the uninstallString is an MSI string, frequently you will have to change the /I to a /X and add a /qn to make the uninstall silent. If you know all the uninstall strings that might be needed you can line them up in your action script:

wait “{pathname of system folder}\msiexec.exe” /X {{GUID#1} /qn
wait “{pathname of system folder}\msiexec.exe” /X {{GUID#2} /qn
wait “{pathname of system folder}\msiexec.exe” /X {{GUID#3} /qn

Otherwise you will need to perform a relevance lookup on the uninstall key, search for each display name that matches and pull the GUID from the key name. (notice the double { to escape the bracket character in action script)

Well authored MSIs take care of this for you by adding items into the UPGRADE table.

If you must have the application not running to perform your uninstall/upgrade, which is another thing that well authored MSIs take care of for you, then you can investigate passing taskkill commands to stop the task. http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/taskkill.mspx?mfr=true

example in action script:

DOS taskkill /fi “imagename eq acrobat.exe” /f /t

Be aware that the user will not get prompted to save their work. This is an “impolite” task kill.

Regarding #2 - the downloaded MSI file will exist temporarily in the BES Client cache. If you want that source to be available for future MSI maintenance/self healing/reinstall then copy it to a known location on the destination machine.

in action script:

dos MD c:\MSICache
delete c:\MSICache\MyMSI.msi
copy __download\MyMSI.msi c:\MSICache\MyMSI.msi
wait “{pathname of system folder}\msiexec.exe” /I c:\MSICache\MyMSI.msi /qb! /l*v c:\MSICache\MyMSI.log

If you have some specific code you are working on, post it here and we will try to help you out.

Cheers,

Brolly

(imported comment written by jefister91)

Another inquiry regarding your respone to Sitaram on #2. Is it possible to have the files in the __Download\XXX.tmp file extract to a different folder and run the install from that folder instead the __Download folder? I need to keep all the Office files local on each PC and would like the install point to go to that location and not be deleted upon reboot. Currently, we are installing O2K3 without Access and I want the ability to send the .cmw file, in the future, to add Access. Thanks,

jefister

(imported comment written by BenKus)

Hi jefister,

Sure… Just run a copy command to copy the files to a different location before running them. See brolly’s post right above yours for example syntax on how to move and run the files.

Ben