How to prevent MI rolling back to previous versions?
I want to make sure all machines in a label have a certain application. I can set up a managed installation for the latest version, but what happens when a newer version comes out? If someone updates to a newer one, will my MI roll them back? I want to avoid smart labels using "contains" or "regex matches" as much as possible. Thanks in advance
Answers (3)
Top Answer
this really depends on the software you are using.
MS Office for instance changes entries in the registry so the MI, which checks for that will triggered again.
(so you understand why some MI act like that while others work just as they should)
There is a workaround:
Before you install setup a Software Item (like MS Office Install) and setup the Custom Inventory Rule for something which never changes
(like FileExists("C:\Program Files (x86)\Microsoft Office\Office14") )
Upload the setup files to this Software item and setup the MI with this Software Item and you are done.
There is no general way since tooo many crap faced developers do the stupid thing and change locations, registry etc with every patch.
The other way is: use a label for new systems to install a basic software toolset and just update using KACE patching. (this is my preferred way)
Most packages do not roll back, but you could add a condition to your smart label to only include versions less than what you have installed. You probably want to create a custom SQL Statement. Here is an example I used our 8x8 Work application. Just change the display name and versions number to meet your application.
Note: This will install on every OS that is not filtered already by the "Supported Operating Systems" setting for the software package. In this example I have all Windows 10 and 11 OSes set to support so it does not install on servers.
Select
MACHINE.NAME As SYSTEM_NAME,
MACHINE.SYSTEM_DESCRIPTION,
MACHINE.IP,
MACHINE.MAC,
MACHINE.ID As TOPIC_ID,
Installed.DISPLAY_VERSION
From
MACHINE Left Join
(Select
MACHINE.NAME As SYSTEM_NAME,
MACHINE.SYSTEM_DESCRIPTION,
MACHINE.IP,
MACHINE.MAC,
MACHINE.ID As TOPIC_ID,
SOFTWARE.DISPLAY_NAME,
SOFTWARE.DISPLAY_VERSION
From
MACHINE Left Join
MACHINE_SOFTWARE_JT On MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID Left Join
SOFTWARE On SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID
Where
SOFTWARE.DISPLAY_NAME = "8x8 Work") Installed On Installed.TOPIC_ID = MACHINE.ID
Where
(Installed.DISPLAY_VERSION Is Null) Or
(Installed.DISPLAY_VERSION < '8.2.5.2')