Sometimes you create a Software Package to deploy to multiple computers, but it is expected that some of them have that software already installed by other means.
It would be great to have the option to add an already installed detection method, so the package doesn't fully execute but an installation record is added to the "Installed Packages" node.
Pre-detection methods could include:
- Check for registry key
- Check for a file
- MSI database query
- Personalized script for detection (probably more difficult to implement)
The logic could be something like this:
- Package installation order is sent to final agent
- Before downloading the full source of the package, the agent checks the pre-detection methods for that package
- If the agent detects the software as already installed, it sends a signal to the Scalability Server stating that it has correctly installed the package (this way, the rest of the Software Delivery process can remain unchanged).
- If the agent doesn't detect the software as already installed, it continues the standard Software Delivery process.
IMO, this has two main benefits:
- You can save bandwidth, avoiding package download to the agent when it isn't needed. This is specially evident when deploying big packages.
- You can populate the "Installed Packages" without having to use workarounds as this: Mapping Discovered Software to Installed Packages
I know that the detection login could be implemented in an installation script, but that would force the agent to download the full package before running that logic. With big packages this is very inefficient.