Video Screencast Help

Using Software Delivery Solution to Target Software Deployments

Created: 01 Aug 2007 • Updated: 01 Aug 2007 | 3 comments
Language Translations
Ryan Rackley's picture
0 0 Votes
Login to vote

Almost all internal IT departments are inundated with the management and deployment of software in the enterprise. Administrators spend a large amount of their time deploying applications at the enterprise level or at the departmental level. Altiris Software Delivery Solution provides a powerful platform for automating the tasks of deploying software throughout an enterprise. By using this Targeted Software Deployments method you will be able to sleep well at night knowing that your deployments are accurate, on time, and completely manageable.

Choosing Applications for Targeted Software Deployments

Applications best suited for this Targeted Software Deployment method are applications that are freeware such as Adobe Reader or applications that issue a site license such as Microsoft Office and can be deployed to either a department of clients or at the enterprise level. Applications that issue licenses on a per-workstation or per-user basis are usually not suitable for this Targeted Software Deployment method as these types of applications should be requested by each individual user so that you can minimize your licensing costs. Although the Targeted Software Deployment method is not best suited for these types of applications, Software Delivery Solution can certainly be modified to accommodate applications with this type of licensing model, especially when used in conjunction with the Software Portal, see the article "Leveraging the Altiris Software Portal" by Scott Hardie for some great information on the Software Portal. This article will focus more on deploying software at the departmental level and the enterprise level.

Choosing Targeted Computers

Once the application has been chosen, you will need to decide which computers that you will be deploying it to. Altiris ships with hundreds of collections that can be utilized for software deployments. To help illustrate the more advanced principles within this article, we will walk through all needed steps to perform a Targeted Delivery through an example application that will require the creation of customized collections.

Configuring Software Delivery Solution

For the Targeted Software Deployment method to be successful, there are some requirements that need to be met. Software Delivery Solution needs to be installed to your Altiris Notification Server, Inventory Solution must be installed to your Altiris Notification Server, the Altiris Agent must be installed on your clients, and the Software Delivery Agent must be installed on your clients. In an effort to keep this article brief and to the point, please refer to your Altiris documentation to perform these tasks.

Creating Software Delivery Packages

To be able to distribute software you need to create a 'Software Package'. To do so open your Altiris Console and select 'View > Solutions > Software Delivery > Packages > Windows'

Right click the 'Windows' folder and select 'New > Software Delivery Package'. Give it a name, description, publisher, language, version, package source, package location, and how long the client will cache the files.

Go to the 'Programs' tab and create a program for this package. You will need to fill out all applicable fields such as the command line, run with rights, whether or not to run if a user is logged on, etc.

Go to the 'Advanced' tab to fill in the Agent display name and description (leave blank to use the Package/Program name) and to assign it to your package servers. The package in this example is 15Mb and has been assigned to all package servers to minimize WAN utilization as package servers can be throttled during business hours.

Creating Targeted Collections

The meat and potatoes of this software deployment method lie within custom collections. We are going to create two collections that will automate the deployment of software for us.

The first custom collection called 'XP Clients that have PDCreator Installed' consists of all workstations that have the example application registered in the 'Add/Remove Programs' applet. This collection uses the following SQL Query:

FROM vComputer c
JOIN Inv_AeX_OS_Add_Remove_Programs arp
ON c.Guid = arp.[_ResourceGuid]
WHERE c.[os name] like 'micro%'
and c.IsManaged=1
and c.[os name] not like '%server%'
and c.[os name] not like '%2000%'
and arp.Name like '%PDFCreator%'

This query will return all clients that have an OS name like micro% and are managed by the Notification Server and the OS Name does not contain server and the OS Name does not contain 2000 and have an entry in their Add/Remove Programs list that contains PDFCreator.

The second custom collection will be called 'Clients Requiring PDFCreator Install' and will consist of an inclusion of the built in Altiris collection of 'All Windows Workstations' and will exclude a handful of specific workstations and a custom collection which is called 'XP Clients that have PDFCreator Installed' that was just created.

Creating Software Delivery Task

Go to 'View > Solutions > Software Delivery > Tasks > Windows > Software Delivery Tasks'. Right click on the Software Delivery Tasks and select 'New > Software Delivery Task'. Fill out the task details giving it a Name, Description, Priority, assign the package as we created above, assign the program within that package as we created above, set the Run schedule (notice the schedule I have set below to run at 8pm every day, this will be explained in more detail later), and all other needed options.

Wondering why this Software Delivery Task is setup to run every day? Well, what I am about to explain to you should help light your office a bit as the light bulb appears above your head. The Software Delivery Task is set to run every day because of the dynamic nature of the collection it applies to. When this Software Delivery Task is executed, it runs the program and package which installs the needed application and then an hour later the daily software inventory runs and posts its updated configuration to the Notification Server which updates the collection as it was setup to update 'Automatically'. So when the application is installed the client removes itself from the targeted list of clients which is why we can run it on a schedule.

Creating a Centralized View

This last step in setting up this Targeted Software Deployment is to create a centralized view of all of the components that are used to deploy the application. It is very useful to complete this step as the components of this software deployment method will have you clicking all over the Altiris Console, centralizing the view will help you achieve a better overall picture of what is needed to execute this software delivery method.

Go to 'View > Solutions > Software Delivery' and create a new folder called 'Custom Software Deployments'. Within this folder we are going to link to all required components relating to this software deployment.

Right Click the folder you just created and select 'New > Item Link' Right Click the folder you just created and select 'New > Item Link > Resources > Collections' and select the collection for which you just created above. Create Item Links for the two custom collections you have created and for the Software Deployment Task. You will need to create a web link for the PDFCreator Package.

End User Self Service

This software delivery method also allows for a limited amount of user self service as well. If your user is logged onto a client that is currently a member of the 'Clients Requiring PDFCreator Install' the user can open the Altiris Agent, go to the Software Delivery tab and run the install themselves as long as you leave the 'User can run this task immediately' option enabled on the Software Delivery Task.


In the beginning of this article I stated that: "By using the Targeted Software Deployments method you will be able to sleep well at night knowing that your deployments are accurate, on time, and completely manageable." I would like to conclude this article by further defining the claims made:

  • Deployments are Accurate: by using the power of custom collections you can deploy your applications with great accuracy. Altiris ships with hundreds of collections that can all be used for software deployment and on top of that you can create a customized collection based on a SQL query that will infinitely increase your ability to fine tune which clients will be deployed to. How about all clients in the Audit department at your Kansas City location that run Windows XP and already have MS Office 2003 or newer and have at least 512Mb of system memory? Utilizing this method your answer will be 'no problem' with a smirk as your colleagues run for the hills.
  • Deployments are on time: Since we have set the Software Delivery Task to execute every day, a failed software installation is no big deal. By setting your Software Delivery Task to execute on a daily schedule you can be assured that even if the first attempt failed the application deployment will be successful to that client eventually. If you are seeing a high failure rate on your installs; all that needs to be done is set the schedule to repeat every 10 minutes.
  • Deployments are Completely Manageable: Suppose you need to deploy an update to an application that has been previously deployed from media, no problem — this method applies to updates as well as new installs. It is very simple to modify this method to produce the granularity needed to perform any kind of software deployment; see 'Deployments are Accurate' bullet above. Also, when a new client is introduced to your network there is nothing that can be forgotten with this method. This method leaves little if no room for mistakes at the tactical level.

Comments 3 CommentsJump to latest comment

cisco5689's picture

Any suggestions to apply a software update that does not indicate a version number when using a collection based on software version?


Login to vote
KSchroeder's picture

We found a way to achieve this. Basically, we edit the Add/Remove Programs entry for the item (at HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'your package key'\, create a value "DisplayVersion" and set the value you want there) in our installation package, usually a VBScript, to define a version if there isn't one already present. Then to track those machines which still need the upgrade, you create another collection of machines with the updated version displayed, and exclude it from your rollout collection.

Another way to do this (if you can't set a version or the package doesn't really set any inventoryable values that you can pick up using the built-in Inventory or Custom Inventory) is to exclude by using the machines which have successfully installed the package, using the Inv_AeX_SWD_Execution_Summary view. Create your collection of the machines which have run the install by something like:

SELECT swdexec._ResourceGuid
FROM Inv_AeX_SWD_Execution_Summary swdexec
WHERE (swdexec.[PackageName] = 'Your Package Name'
OR swdexec.[PackageId] = 'Your Package GUID')
AND swdexec.Status = 'Command executed'
AND swdexec.ReturnCode IN (0, 3010) -- or other success codes

Symantec Trusted Advisor

For Forum threads, please click "Mark as Solution" if answered.
For all content, please give a thumbs up if you agree with or support the post.

Login to vote
phillyfish's picture

This may be a dumb questions, but why two collections? Couldn't I just create an "XP Clients without PDFCreator Installed" using a "not like '%PDFCreator%'" SQL query? Kinda like how rolling out all the agents go... "Client requiring the software delivery agent" collection and the clients drop out of it once the agent is installed.

"If you want to change the world, find a better way to do something and have everyone follow it." John Buckman -

Login to vote