ALLUSERS |
The "ALLUSERS" property (possibly along with user privledges) determines whether the install will be per-user or per-machine. Not all users will be able to install software per-machine, particularly under Vista as higher permissions will be required.
Some of the things that Windows Installer varies based on the type of install:
A per-machine installation is the default if "company.mmh" is being used as it sets this property (look for "COMPANY_ALLUSERS_PROPERTY").
ALLUSERS Values |
This property can have these states:
Windows Installer will convert the property from 2 to 1 or null. So after it has done this is should be safe to test for null or 1 to determine installation type. See the section "Can't query whether Per User or Per Machine!" for more details.
The following partial log shows an install of an msi with "ALLUSERS" of "1" hardcoded getting overriden to "2" (from the command line) before Windows Installer returning it to "1" as it knows I'm an administrator:
MSI (c) ...: Package to be registered: 'TryMe.msi' MSI (c) ...: Note: 1: 2262 2: AdminProperties 3: -2147287038 MSI (c) ...: PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '1'. Its new value: '2'. MSI (c) ...: PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '2'. Its new value: '1'. MSI (c) ...: Machine policy value 'DisableMsi' is 0