One of the questions that we are sometimes asked is “How can I use BatchPatch to determine if a particular application is installed on target computers?”
First, you should know that BatchPatch has a built-in action ‘Get list of installed programs‘, which you can find under ‘Actions > Get information > Get list of installed programs‘. This action will query target computers for the registry values that store the list of installed applications in Windows. While this can be valuable to look at when you want to see everything that’s installed on a computer, it’s not particularly helpful when you want to look for the presence of just a single entry, especially across numerous target systems. There are actually two issues to consider here. First, obviously if you have a list of 300 items but you’re only interested in a single piece of software, it’s just not convenient to manually read through a 300-item list just to see if there is a single item there. Second, there is no guarantee that the registry values that BatchPatch queries with the built-in action will contain the name of the software that you are looking for even if that software is actually installed on the system(s) you’re querying. Most software applications will register themselves such that they appear in that list, but not all apps do this.
The most reliable way to check for the existence of a particular application is to query something specific to that application… something that you know for sure will exist on target systems where the app is installed. We recommend you look at a system with the desired application installed, and identify either a specific file or a specific registry value that the application has as part of its installation. Then you can use BatchPatch to check target systems for just that particular file or registry value.
In the BatchPatch actions menu you have:
Actions > Get information > Check if file exists…
Actions > Get information > Check registry key/value
Also in the BatchPatch Job Queue you have:
If specified file exists, goto label:X
If specified file does not exist, goto label:X
If specified registry key exists, goto label:X
If specified registry key does not exist, goto label:X
If specified registry value exists, goto label:X
If specified registry value does not exist, goto label:X
If version of specified file is newer than Y, goto label:X
If version of specified file is older than Y, goto label:X
You can use one or more of the above items to easily assess whether or not target computers have a given application installed. In the case of the Job Queue items, you can leverage those to branch your queue based on the results of each query, which gives you a lot of options and flexibility.