PDA

View Full Version : Install for all users



MarkRiffey
10-20-2021, 08:52 AM
It's become a common thing for installers to offer to install software for "all users" or just the currently logged in user.

Obviously, this is installer-speak for "want me to build HKCU entries for all user profiles" (and likewise, user-specific doc folders, user-specific appdata, etc).

As more sites have admins doing the installs on behalf of the end users (including via SCCM et al), it shines a light on why installers offer this.

Is there an easy way to do this in SB or do i have to do this in a custom DLL?

By "do this", I mean "create HKCU registry entries for each user profile on a machine", rather than only for the admin - in cases where the primary user does not have install privileges.

"Do this" will also include "create user-profile specific documents/appdata etc entries".

I know I can launch a non-elevated installer helper app from the elevated installer, but this adds complexity Id prefer to avoid.

Thanks,

Mark

lmodern1878
01-20-2022, 05:31 AM
Hi:

I just saw this thread and want to give it my best guess:

In the "User Info" dialog properties there is a page called "User Types" that might be something to do with it. On this dialog there's a checkbox called "Enable User Type". My theory is that if you enable this since it's a radio button it returns 1 or "all users" and 2 for "only the current user", you could then set a variable %installtype% that if the dialog returns 1, set it to everyone, if the dialog returns 2, set it to just me. After doing that create an if... statement in your script surrounding your registry changes. something like

if %installtype% = everyone then
modify registry HKLM\A
modify registry HKLM\B
modify registry HKLM\C
...
else
modify registry HKCU\A
modify registry HKCU\B
modify registry HKCU\C
...
end

Also, if you're targeting vista or newer or server 2008/R2 or newer you can set the UAC Execution level at General Install Properties > Generator > Execution Level. By default it's RequireAdministrator. To allow your install to run without UAC elevation, set it to "asInvoker" which uses the least privileges available to the current user, or set it to "HighestAvailable" which will run the installer using the highest privileges available to the user.

These are just 2 thoughts that might help you our but I cannot guarantee it Try one, try both, see what works or if I've lost my magic touch.

Best:
CF