InstallScope="perUser" makes only sense on Windows Seven?

5 messages Options
Embed this post
Permalink
Markus KARG

InstallScope="perUser" makes only sense on Windows Seven?

Reply Threaded More More options
Print post
Permalink
This perMachine / perUser discussion really confuses me. ;-)

 

I tried what happens if I set InstallScope="perUser".

 

The result is, that I cannot install the software on Vista, because it says
I do not have sufficient access rights to enter C:\Program
Files\[Manufacturer] (no, it does not ask whether it shall elevate, even if
I set InstallPrivileges="elevated" in addition to InstallScope="perUser").
This is because "real" perUser installs are only possible in Windows 7, but
all other Windows (= 99,9% of all existing installations) will share the
files folder.

 

So if InstallScope="perUser" useless on every OS besides Windows 7?

 

The consequence would be that one must write different .msi for Vista and
Windows 7 -- one that is perMachine (since perUser will not work) and one
that is perUser (since that seems to be what Microsoft wants us to do in
Windows 7).

 

This sounds weird, since everything else besides that flag will be the same!

 

Or did I miss something?

 

Thanks

Markus

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Blair-2

Re: InstallScope="perUser" makes only sense on Windows Seven?

Reply Threaded More More options
Print post
Permalink
If you set InstallScope="perUser" then your MSI will be marked to not prompt
for elevation. As a consequence you cannot set ALLUSERS and all resources
must go into locations that don't require elevation, unless you want to see
the error you are reporting. ProgramFilesFolder always requires elevation
(unless the default permissions have been severely altered) and as a result
your files should not go under ProgramFilesFolder if you set perUser as your
installation scope.

Real perUser installations are very possible under Vista and XP (I have
written several), but they require that you pick a directory to install that
is in the user's profile and not in "Program Files", and that you don't put
anything in HKLM.

In Windows 7 (using MSI 5.0), the ProgramFilesFolder gets remapped to a
profile location when the installation ends up perUser, which is what helps
enable switchable packages, but only when setting the MSIINSTALLPERUSER
property. In downlevel platforms, that folder never changes value and thus
always points to a protected perMachine location.

Also, Windows 7 does not force you to write perUser. You can write
perMachine and get just as good a job as under Vista with the very same MSI.
It simply makes a very old pattern installation pattern that was never very
well supported previously more viable.

Without Windows 7 you generally have to write two MSI files if you wish one
to be perUser and the other perMachine. With Windows 7 you can still use the
exact same MSI files in the same way (there is NO forcing of a new way), or
you can make a single package that can be installed either way using the new
property to enable the new behavior.

-----Original Message-----
From: Markus Karg [mailto:[hidden email]]
Sent: Thursday, November 05, 2009 1:01 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: [WiX-users] InstallScope="perUser" makes only sense on Windows
Seven?

This perMachine / perUser discussion really confuses me. ;-)

 

I tried what happens if I set InstallScope="perUser".

 

The result is, that I cannot install the software on Vista, because it says
I do not have sufficient access rights to enter C:\Program
Files\[Manufacturer] (no, it does not ask whether it shall elevate, even if
I set InstallPrivileges="elevated" in addition to InstallScope="perUser").
This is because "real" perUser installs are only possible in Windows 7, but
all other Windows (= 99,9% of all existing installations) will share the
files folder.

 

So if InstallScope="perUser" useless on every OS besides Windows 7?

 

The consequence would be that one must write different .msi for Vista and
Windows 7 -- one that is perMachine (since perUser will not work) and one
that is perUser (since that seems to be what Microsoft wants us to do in
Windows 7).

 

This sounds weird, since everything else besides that flag will be the same!

 

Or did I miss something?

 

Thanks

Markus

----------------------------------------------------------------------------
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus
on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Markus KARG

Re: InstallScope="perUser" makes only sense on Windows Seven?

Reply Threaded More More options
Print post
Permalink
Blair,

once more, thank you for this interesting insights!

So in short: perMachine will work everywhere the same, but perUser will work
differently for Windows 7 to all the rest - on Windows 7 the MSI5 will
automatically provide "privately mapped" locations, while on all other
platforms the .msi author has to provide this logic (what also will work on
Windows 7).

Ok, since least of my customers will have Windows 7 in the next months, then
I should provide this on my own. If I see it correctly, what I have to do is
*not* using ProgramFilesFolder but something different. This shouldn't be
hard to do, but: As a result, it is up to the *.msi author* to decide
*where* the software will go. I don't think that administrators will love
the idea that each .msi has some other, fancy location (they had been so
glad about the fact that some day ProgramFilesFolder was invented: now they
know for sure where all the software is located). This is a real drawback I
think.

In fact, what I think would be optimal:

* Files go into %ProgramFilesFolder% (per Machine)

* Shortcuts and Verbs go into each user's profile (per User)

* both in one installation step

...but this is exactly what you told me *not* to do... :-(

Regards
Markus

> -----Original Message-----
> From: Blair [mailto:[hidden email]]
> Sent: Freitag, 6. November 2009 01:51
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: Re: [WiX-users] InstallScope="perUser" makes only sense on
> Windows Seven?
>
> If you set InstallScope="perUser" then your MSI will be marked to not
> prompt
> for elevation. As a consequence you cannot set ALLUSERS and all
> resources
> must go into locations that don't require elevation, unless you want to
> see
> the error you are reporting. ProgramFilesFolder always requires
> elevation
> (unless the default permissions have been severely altered) and as a
> result
> your files should not go under ProgramFilesFolder if you set perUser as
> your
> installation scope.
>
> Real perUser installations are very possible under Vista and XP (I have
> written several), but they require that you pick a directory to install
> that
> is in the user's profile and not in "Program Files", and that you don't
> put
> anything in HKLM.
>
> In Windows 7 (using MSI 5.0), the ProgramFilesFolder gets remapped to a
> profile location when the installation ends up perUser, which is what
> helps
> enable switchable packages, but only when setting the MSIINSTALLPERUSER
> property. In downlevel platforms, that folder never changes value and
> thus
> always points to a protected perMachine location.
>
> Also, Windows 7 does not force you to write perUser. You can write
> perMachine and get just as good a job as under Vista with the very same
> MSI.
> It simply makes a very old pattern installation pattern that was never
> very
> well supported previously more viable.
>
> Without Windows 7 you generally have to write two MSI files if you wish
> one
> to be perUser and the other perMachine. With Windows 7 you can still
> use the
> exact same MSI files in the same way (there is NO forcing of a new
> way), or
> you can make a single package that can be installed either way using
> the new
> property to enable the new behavior.
>
> -----Original Message-----
> From: Markus Karg [mailto:[hidden email]]
> Sent: Thursday, November 05, 2009 1:01 PM
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: [WiX-users] InstallScope="perUser" makes only sense on Windows
> Seven?
>
> This perMachine / perUser discussion really confuses me. ;-)
>
>
>
> I tried what happens if I set InstallScope="perUser".
>
>
>
> The result is, that I cannot install the software on Vista, because it
> says
> I do not have sufficient access rights to enter C:\Program
> Files\[Manufacturer] (no, it does not ask whether it shall elevate,
> even if
> I set InstallPrivileges="elevated" in addition to
> InstallScope="perUser").
> This is because "real" perUser installs are only possible in Windows 7,
> but
> all other Windows (= 99,9% of all existing installations) will share
> the
> files folder.
>
>
>
> So if InstallScope="perUser" useless on every OS besides Windows 7?
>
>
>
> The consequence would be that one must write different .msi for Vista
> and
> Windows 7 -- one that is perMachine (since perUser will not work) and
> one
> that is perUser (since that seems to be what Microsoft wants us to do
> in
> Windows 7).
>
>
>
> This sounds weird, since everything else besides that flag will be the
> same!
>
>
>
> Or did I miss something?
>
>
>
> Thanks
>
> Markus
>
> -----------------------------------------------------------------------
> -----
> --
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> trial. Simplify your report design, integration and deployment - and
> focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> -----------------------------------------------------------------------
> -------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> trial. Simplify your report design, integration and deployment - and
> focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Thorsten Schöning

Re: InstallScope="perUser" makes only sense on Windows Seven?

Reply Threaded More More options
Print post
Permalink
Guten Tag Markus Karg,
am Freitag, 6. November 2009 um 10:05 schrieben Sie:

> As a result, it is up to the *.msi author* to decide
> *where* the software will go. I don't think that administrators will love
> the idea that each .msi has some other, fancy location (they had been so
> glad about the fact that some day ProgramFilesFolder was invented: now they
> know for sure where all the software is located). This is a real drawback I
> think.

You just don't have to install per user, it's often a bad idea.

> In fact, what I think would be optimal:

> * Files go into %ProgramFilesFolder% (per Machine)

> * Shortcuts and Verbs go into each user's profile (per User)

> * both in one installation step

Why should I want to install software globally but maintain shortcuts
etc. for each user? Where is the benefit?

Mit freundlichen Grüßen,

Thorsten Schöning

--
Thorsten Schöning
AM-SoFT IT-Systeme - Hameln | Potsdam | Leipzig
 
Telefon: Potsdam: 0331-743881-0
E-Mail:  [hidden email]
Web:     http://www.am-soft.de

AM-SoFT GmbH IT-Systeme, Konsumhof 1-5, 14482 Potsdam
Amtsgericht Potsdam HRB 21278 P, Geschäftsführer: Andreas Muchow


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Blair-2

Re: InstallScope="perUser" makes only sense on Windows Seven?

Reply Threaded More More options
Print post
Permalink
In reply to this post by Markus KARG
What the administrators I have talked to like is pure perMachine packages
that have ZERO profile impact that you tell the administrators are
per-machine packages (InstallScope="perMachine"). That means:

* Files go into %ProgramFilesFolder% (per Machine)
* Shortcuts and Verbs go into the "common/All Users" "profile" (per Machine)

Which is exactly what I recommend. It does mean that I ignore the ICE that
asks for HKCU registry keys on shortcuts that I am putting in the All Users'
Start menu and things like that, however.

-----Original Message-----
From: Markus Karg [mailto:[hidden email]]
Sent: Friday, November 06, 2009 1:06 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] InstallScope="perUser" makes only sense on Windows
Seven?

Blair,

once more, thank you for this interesting insights!

So in short: perMachine will work everywhere the same, but perUser will work
differently for Windows 7 to all the rest - on Windows 7 the MSI5 will
automatically provide "privately mapped" locations, while on all other
platforms the .msi author has to provide this logic (what also will work on
Windows 7).

Ok, since least of my customers will have Windows 7 in the next months, then
I should provide this on my own. If I see it correctly, what I have to do is
*not* using ProgramFilesFolder but something different. This shouldn't be
hard to do, but: As a result, it is up to the *.msi author* to decide
*where* the software will go. I don't think that administrators will love
the idea that each .msi has some other, fancy location (they had been so
glad about the fact that some day ProgramFilesFolder was invented: now they
know for sure where all the software is located). This is a real drawback I
think.

In fact, what I think would be optimal:

* Files go into %ProgramFilesFolder% (per Machine)

* Shortcuts and Verbs go into each user's profile (per User)

* both in one installation step

...but this is exactly what you told me *not* to do... :-(

Regards
Markus

> -----Original Message-----
> From: Blair [mailto:[hidden email]]
> Sent: Freitag, 6. November 2009 01:51
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: Re: [WiX-users] InstallScope="perUser" makes only sense on
> Windows Seven?
>
> If you set InstallScope="perUser" then your MSI will be marked to not
> prompt
> for elevation. As a consequence you cannot set ALLUSERS and all
> resources
> must go into locations that don't require elevation, unless you want to
> see
> the error you are reporting. ProgramFilesFolder always requires
> elevation
> (unless the default permissions have been severely altered) and as a
> result
> your files should not go under ProgramFilesFolder if you set perUser as
> your
> installation scope.
>
> Real perUser installations are very possible under Vista and XP (I have
> written several), but they require that you pick a directory to install
> that
> is in the user's profile and not in "Program Files", and that you don't
> put
> anything in HKLM.
>
> In Windows 7 (using MSI 5.0), the ProgramFilesFolder gets remapped to a
> profile location when the installation ends up perUser, which is what
> helps
> enable switchable packages, but only when setting the MSIINSTALLPERUSER
> property. In downlevel platforms, that folder never changes value and
> thus
> always points to a protected perMachine location.
>
> Also, Windows 7 does not force you to write perUser. You can write
> perMachine and get just as good a job as under Vista with the very same
> MSI.
> It simply makes a very old pattern installation pattern that was never
> very
> well supported previously more viable.
>
> Without Windows 7 you generally have to write two MSI files if you wish
> one
> to be perUser and the other perMachine. With Windows 7 you can still
> use the
> exact same MSI files in the same way (there is NO forcing of a new
> way), or
> you can make a single package that can be installed either way using
> the new
> property to enable the new behavior.
>
> -----Original Message-----
> From: Markus Karg [mailto:[hidden email]]
> Sent: Thursday, November 05, 2009 1:01 PM
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: [WiX-users] InstallScope="perUser" makes only sense on Windows
> Seven?
>
> This perMachine / perUser discussion really confuses me. ;-)
>
>
>
> I tried what happens if I set InstallScope="perUser".
>
>
>
> The result is, that I cannot install the software on Vista, because it
> says
> I do not have sufficient access rights to enter C:\Program
> Files\[Manufacturer] (no, it does not ask whether it shall elevate,
> even if
> I set InstallPrivileges="elevated" in addition to
> InstallScope="perUser").
> This is because "real" perUser installs are only possible in Windows 7,
> but
> all other Windows (= 99,9% of all existing installations) will share
> the
> files folder.
>
>
>
> So if InstallScope="perUser" useless on every OS besides Windows 7?
>
>
>
> The consequence would be that one must write different .msi for Vista
> and
> Windows 7 -- one that is perMachine (since perUser will not work) and
> one
> that is perUser (since that seems to be what Microsoft wants us to do
> in
> Windows 7).
>
>
>
> This sounds weird, since everything else besides that flag will be the
> same!
>
>
>
> Or did I miss something?
>
>
>
> Thanks
>
> Markus
>
> -----------------------------------------------------------------------
> -----
> --
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> trial. Simplify your report design, integration and deployment - and
> focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> -----------------------------------------------------------------------
> -------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> trial. Simplify your report design, integration and deployment - and
> focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users


----------------------------------------------------------------------------
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus
on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users