cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mcrob427
Level 3

Per-Machine install becomes Per-User when installing with UAC enabled on Vista

Hi,

I have a Basic MSI Installer that also contains a Merge Module project. I have ALLUSERS set to 1 on the main installer, and I see some strange behaviors on Vista. When UAC is disabled, I can install fine and everything works. But if UAC is enabled, the install becomes a Per-User install rather than Per-Machine.

I did a search through the forum and read through some of the UAC-Compliance articles that were suggested, but I haven't been able to figure out what is wrong, maybe I should be changing my custom actions' type?

Any help would be appreciated. Thanks.

Robert Lin
Software Engineer
NextLabs, Inc. (http://www.nextlabs.com)
Labels (1)
0 Kudos
(4) Replies
Stefan_Krueger
Level 9

What's the symptoms of the install becoming per-user? Did you generate a log?
How do you set the ALUSERS property (command line, property manager, ...)
Stefan Krueger
InstallSite.org
0 Kudos
Kelter
Level 10

My problem seems to be related to this. Whether or not ALLUSERS is set in the property table upon building the same behavior persists. My project is also a BasicMSI, and the Required Execution Level is set to Administraor.

Symptoms:
On Vista systems, when using the "change" option in "Programs and Features," (or when calling msiexec.exe /i{GUID}, but not when re-running the setup.exe) the log shows the ALLUSERS property being reset during the InstallInitialize phase. Under these exact same conditions, all feature states in the CustomSetup dialog are improperly initialized. Even when all features are currenly installed locally, they initialize to the "Advertised" state.

More specifics:
This behavior does not manifiest when running in XP mode, nor does it show up when setup.exe launches the msi.
I tried using a Type 51 (Set a Property) CA to set 'ALLUSERS" to "1" after SetupInitialize deletes the value, but as soon as the next action begins, ALLUSERS is once again deleted.
All of my features are set to "Disallow Advertise."

My best guess is that resetting ALLUSERS is causing the installation package to look in the location where per-user installation info is stored instead of searching the per-machine location.

Obviosuly broken change/repair functionality is a major problem. If anybody has any ideas or has observed similar behavior, or just might have thought of something that I haven't yet, please let me know. mcrob427, have you solved your problem?

Thanks in advance.
0 Kudos
Kelter
Level 10

Okay, so i finally found this thread

http://community.installshield.com/showthread.php?t=172412

and used the silly owrkaround suggested there. Namely, i created several CAs which set the ALLUSERS property after every action that resets it.

This is pretty rediculous, I must say, expecially since there's no real explanation for this behavior in the first place...i don't see a circumstance where it would be desireable without some much better determinism in the background.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I see that there is a hotfix Q113652 which sounds related (search for 2008 hotfix ALLUSERS, or similar, at http://support.installshield.com/). The instructions for installing it seem a little confusing - just replicate the positions of the DLLs in folders similar to those in the zip, noting that they should replace backed-up DLLs of the same name.
0 Kudos