0

BACKGROUND

My software is deployed over our network via Group Policy, using a standard MSI installer with some custom actions that register that the software is in fact deployed.

It's all very simple and standard. It's a big Windows app, and all the files get dumped into the application folder, a shortcut is made for All Users on the desktop and Start Menu. Everyone is happy. It works like clockwork, the Software Installation GPO causes me no problem at all. Upon either one or two restarts, new versions are installed/upgraded with ease. It hasn't always been this easy, but I've made it so.

PROBLEM

However there are some occasions where I just want to issue an update immediately without commanding a restart. I was wondering if I can just let my application provide an easy way to:

  1. Close down
  2. Execute the appropriate MSI (whereby it'll zoom through the wizard automatically, I don't want the user to have to go through it)
  3. Start the application or at least tell the user to start it again

I don't want this to affect the current MSI configuration too much, as it must work over GPO installation. Doesn't Firefox have a similar update mechanism?

Are MSI's clever enough to know when they're already installed? For example if my app was do do such a routine, when the PC is rebooted, it'll ignore the GPO deployment? If I then issue an update to the next version, it'll uninstall my manually installed version and overwrite it with the GPO version?

I'm just knocking up a VM to try this out, but it'd be nice to know if anyone has any experience with this.

Thanks! Tom

Tom
  • 3,354
  • 1
  • 22
  • 25

1 Answers1

0

Changes and Updates in GPO are only executed at pc start and/or logon. That is something you can't change. This limits the ways installing software by GPOs. In fact it is only possible at pc start. Keep in mind, GPOs are applied with an administrative account.

When a User runs your app, that account is limited to the user rights. This makes it impossible to install/change/remove software. Simple Users can not this kind of administration work. Keep in mind, there is limited rights and UAC on Vista or later.

those restrictions force you, to have a kind of installation service, which runs with admin rights.

the Microsoft system center configuration manger is able to install software without those GPO reboots. It is able to do this, because it uses a service.

Maybe you can switch to SCCM for installing/updating your software.

If you can't, you maybe create a own service which can install patches for your app.

With correct upgrade-codes and checks within your msi, those updates are not overwritten at next reboot.

A other solution: We are using a AIP (Admin Installation Point). This AIP is deployed to Client PC via GPO.

Our Software has a small wrapper, which is executed at program start. This wrapper checks the version numbers. If the AIP is patched, the wrapper re-installs the main-component/feature of our application.

This wrapper uses the windows installer (COM)-API. I'm using ReinstallFeature and/or ReinstallFeature function, depending on the FeatureState.

coding Bott
  • 4,287
  • 1
  • 27
  • 44