PDA

View Full Version : Install into COMMON users folder



NewsArchive
05-02-2012, 01:34 AM
What is the best way to install something into the COMMON users folders instead
of ALL USERS? I can install it somewhere and copy it but is that the best
practice?

This is the first time I've needed to do this but I expected it would be an
option under shortcuts but I only see checkbox options for all users and this
user.

Thanks!
Kelly E Major

NewsArchive
05-02-2012, 01:34 AM
Isn't that practice frowned upon nowadays? That is the install per user
option, right?

--

Russ Eggen
RADFusion International, LLC

NewsArchive
05-02-2012, 01:35 AM
Kelly,

> What is the best way to install something into the COMMON users folders
> instead of ALL USERS? I can install it somewhere and copy it but is
> that the best practice?
>
> This is the first time I've needed to do this but I expected it would
> be an option under shortcuts but I only see checkbox options for all
> users and this user.

The "Inststall this application for:"

(o) Anyone who uses this computer (all users)

( ) Only for me (JoeUser)

method is history for 7+ years now.

In UAC-aware operating systems, installations are per-machine (running
elevated) and if you have to install "per-user" data, you have to install
the data to a common location and as a "first run" action of your own main
(non-elevated) application, copy the data from the common location into a
per-user location.

If you really have to provide an "All User / Joe User" installation type
(for whatever reason), you can do the following:

1. Create a setup.exe "parent" application that runs non-elevated by
default. This setup.exe displays the Install for "Anyone" or "JoeUser"
option (similar to the attached screenshot).

2. Create a "child" installer that runs non-elevated by default, but may
also run elevated. This is your "real" installer. Please note that it does
not have any write access to protected Windows resource ("Program Files"
folder tree, Windows folder tree, the C:\ root, HKEY_LOCAL_MACHINE, etc.)
when it runs non-elevated. You can use the "Get System Info (Installer
Elevation Type)" script function to determine whether the process is running
elevated/non-elevated. Based on this information, you have to handle your
per-user and/or per-machine installation actions.

3. Package the "child" installer into the "parent" setup.exe and launch the
parent non-elevated if the user selects the "JoeUser" setup type. Launch it
elevated when the user selects "Anyone".

Last week, our script writing consulting created a per-user/per-machine
project. But it's not a trivial task to develop the deployment logic.

Friedrich

NewsArchive
05-09-2012, 01:20 AM
Russ:

I need to be able to do this for a corporate environment running XP that has
severe lock down restrictions on a "generic" user login workstation. This is
their current SOP.

- Kelly

NewsArchive
05-09-2012, 01:21 AM
OK, that's a bit different than the original post. Thought you were
talking generically <g>.

--

Russ Eggen
RADFusion International, LLC

NewsArchive
05-09-2012, 01:22 AM
Friedrich,

Thanks for the detailed response. The site is still running XP until next year
and installing items into the "common" group is the current SOP for certain
things.

Regards,
Kelly E Major