I often get the question how to handle applications with dependencies to other applications using Configuration Manager 2007. I have written this example and will follow up with a post on how to do it using SCCM v.next which is much easier than using SCCM 2007.
You can use the “run another program before” feature in SCCM 2007 but it doesn’t provide you with any overview of which applications are depending and is very basic. This is one of the reasons I use a task sequence for installing applications with dependencies instead. It is much easier to get an overview of which applications will be installed and also very easy to create dependencies if the software is already present it won’t install again.
This example will show how to install the Microsoft App-V 4.6 Client which requires that Visual C++ 2005 sp1 and Visual C++ 2008 sp1 is installed on the computer, before installation. This assumes that the packages needed are already created in SCCM:
- Create a custom Task Sequence
- Edit the newly created Task Sequence and add the three applications that should be installed so it looks like this:
- On the Microsoft Visual C++ 2005 Sp1 application, select the option tab and add the condition “If Statement”, and select “None”
- Mark the newly created condition, and select add Condition, “Installed Software” , as you can see you can use for instance a registry key of check if a file exists on the drivw which can be used to evalute if the application is installed even if it isn’t a Windows Installer package.
- In the next dialog, browse to the MSI package for the Visual C++ 2005 SP1, and select open as displayed below.
- After that the condition section should look like this:
- This condition will now install Visual C++ 2005 sp1 only if it isn’t installed already.
- Repeat the steps for Visual C++ 2008 sp1.
- Then advertise the task sequence and test the installation.
If one of the applications requires a reboot before the next application is installed, add a group and set the condition on the group instead of the application and include a reboot in the step.
Note! When adding a “restart task sequence step” the task sequence editor by default selects the option “The boot image assigned to this task sequence” this must be changed to “The currently installed default operating system” otherwise the task sequence will fail.
Nice, but what if *.msi doesn’t exists?