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:
-
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'
-
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)
-
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.