Upgrade software package installed with GPO

active-directorydeploymentgroup-policy

Since recently I have been using AD policies to deploy software packages through GPO on a small domain. This had been working well, but I am not sure what is the correct procedure for upgrading a package.

Assuming that I have initially deployed X, version a through GPO named "Install X". All works well and with time version b is released. (Assuming that the .msi of new version can perform an upgrade of already installed version) I believe that I have the following options for performing the upgrade:

  1. replace original .msi in the distribution point and then through Group Policy Editor (open GPO "Install X"), under Computer Configuration/Software Settings/Software Installation assign a task to 'Redeploy application'

  2. use Group Policy Editor to create a new package in Computer Configuration/Software Settings/Software Installation for the new version and specify which older package should be upgraded by this one (on Upgrade tab select package for version a; options to uninstall existing or do an upgrade)

  3. use Group Policy Editor to remove a package for version a (with immediately uninstall option) and add a new package for version b

Questions:

  • What are disadvantages of the 1st option?
  • Is the 2nd option a proper/recommended way of upgrading packages distributed through GPO?
  • Are there some other subtleties, best practices or some general advice regarding upgrading packages through GPOs?

EDIT:
Also, I have only properly tested 3, so if I am missing some important step in 1 and 2 I would appreciate pointers. 🙂

Best Answer

I have done option 2 and 3. Mostly use option 2 unless I know the previous MSI package gave me problems. Option 1 seems just a hack way to do things as its not designed for that. I always leave my old MSIs in the deploy location, just in case. I have also noticed with option 2 it will automatically detect previous version and automatically upgrade the previous package even if you don't manually set it to (Windows Server 2008 R2) when the MSI is properly configured.