Welcome to Symantec Connect.  Log in or register to participate.
Login to participate
Endpoint Management & Virtualization ArticlesRSS

Forcing a Repair When Your Application Has No Entry Points [Active Setup]

Eshwar's picture

The Active Setup method is now the preferred method for forcing a repair when your application has no entry points (i.e. no advertised shortcuts), but has Userprofile files And/Or Current User keys.

These Files/Keys will need to put down/repaired for every new user that logs on. If there is no advertised shortcut then this will not happen. The solution to this is to use Active Setup.

Active Setup works as follows:

The keys location at [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]] tells the Active Setup to check for the corresponding HKCU key during logon [HKEY_CURRENT_USER\Software\ Microsoft\Active Setup\Installed Components\[ProductCode]]).

If this HKCU does not exist it runs the command in the located in the Data field of the "StubPath" under the HKLM key (in this case a repair of user specific files and HKCU keys - msiexec /fou).

If the application has no user specific files or files installing to the users profile then it isn't necessary to use the full /fou command - /fu can be used instead. This will ensure that only the HKCU registry information gets rewritten which will help reduce the time taken to repair all applications on a machine when a new user logs on.

If the component that installs to the user profile, installs a file only (or no HCKU Information), a dummy HKCU key must be added to this component and set as key path for that component, for the active setup to repair.

It is important that the HCKU active setup key is added to the msi otherwise the following could happen:

User A uninstalls the application and then user B reinstalls the application, when user A goes to logon the current user active setup key will be present and active setup will not do a repair.

It runs the active setup keys in the order they appear in the list.

For Dependencies:

If a certain order is needed (i.e. you require {1234....} to repair after {989A44...}) the solutions is to place the ">" character before the [ProductCode].

For example:

If you had app A that has an advertised shortcut, and app B had no advertised shortcut but had a launch condition for app A.

The solution would be to place 2 Active Setups in app B (1 for app A and 1 for app B).
Then, to make app B repair second, use the ">" character as shown above