Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DesktopFolder for Per-Machine Installations

170 views
Skip to first unread message

KMMorey

unread,
Feb 18, 2010, 1:44:01 PM2/18/10
to
I have an MSI installation that is always installed per-machine (CA sets
ALLUSERS=1) that is supposed to install a couple non-advertised desktop
icons. The shortcut table shows that the Directory_ column is set to
DesktopFolder. The icons install properly on 32-bit XP and Windows 2003
Servers, but I'm having issues on 64-bit versions and on Windows Server 2008
and 2008 R2.

On those operating systems, the icons don't show on the desktop when the
installation finishes. On 64-bit XP machines, I found them in
C:\WINDOWS\SysWOW64\config\systemprofile\Desktop, but can't get them to
display on the desktop. (I installed them here using an internal service
running as LocalSystem that runs a set of MSI's one after the other.)

On Windows 2008 and 2008 R2 Servers, I see them appear, then disappear, as
the install progresses. They end up in C:\Users\Public\Desktop, but I get an
error at the end of the installation saying that
"C:\Users\<localAdmin>\Desktop refers to a location that is unavailable" and
I have to reboot the machine to get them to show without error. (I've seen
this error running them as a local admin.)

Should I be doing something different to install desktop icons for all
users? Or are there settings that are required on the newer operating
systems to get these to work?

I should also probably mention that my Windows Installer Schema is still set
to 200.

I'd appreciate any suggestions, as I can't seem to figure this out and I
need to get it cleared up. Thanks!

Kathy Morey
ProfitStars a Jack Henry Company
kmorey @ profitstars . com

Wilson, Phil

unread,
Feb 18, 2010, 7:49:51 PM2/18/10
to
Are you seeing this on all UAC systems? I'm wondering because that's the
difference between where it works and where it doesn't. This is asking for
elevation when it installs, yes?
--
Phil Wilson
The Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972


"KMMorey" <kmorey at profitstars.com> wrote in message
news:03C1978C-C761-4C6D...@microsoft.com...

Sebastian Brand

unread,
Feb 19, 2010, 1:17:09 AM2/19/10
to
Hello Kathey,

As it works correctly under 32-bit I'm assuming something different
here. Are you sure the CA to set ALLUSERS is working in an x64
environment? The DesktopFolder property must be set to the ...\All
Users\Desktop or ..\Public\Desktop folder regardless of 32-bit or 64-
bit. I assume it's not using the All Users folders but the per-user
paths.
Why are you using a CA to set the ALLUSERS anyway? For testing, try
setting it from the command line via
msiexec.exe /i setup.msi ALLUSERS=1

Best regards,
Sebastian Brand
http://blog.sebastianbrand.com

KMMorey

unread,
Feb 26, 2010, 10:07:02 AM2/26/10
to
Thank you both for your replies. I was able to determine that I had an error
in one of my packages that was causing the "location that is unavailable"
error.

I'm still trying to work through the issue on 64-bit XP, however.

To restate, the install is setting the ALLUSERS property to "1", which I see
in the log file.

The installation is being run by a service that is running as LocalSystem.
It is doing a major upgrade of a previously installed version.

During the CostFinalize action, I see this in the log file:
(SERVER) MSI (s) (7C:90) [12:31:06:046]: PROPERTY CHANGE: Modifying
ProgramMenuFolder property. Its current value is
'C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs\'. Its new
value: 'C:\WINDOWS\SysWOW64\config\systemprofile\Start Menu\Programs\'.
(SERVER) MSI (s) (7C:90) [12:31:06:046]: PROPERTY CHANGE: Adding
MENUDIR.8AD34650_5368_4D56_BD22_850F55F1B671 property. Its value is
'C:\WINDOWS\SysWOW64\config\systemprofile\Start Menu\Programs\Synergy ECM\'.

My program menu items are installed into the latter directory, but don't
show when the installation is finished and I click on Start ->All Programs.

I see a similar change in the log file for the DesktopFolder:
(SERVER) MSI (s) (7C:90) [12:31:06:046]: WIN64DUALFOLDERS:
'C:\WINDOWS\SysWOW64\' will substitute 20 characters in
'C:\WINDOWS\system32\config\systemprofile\Desktop\' folder path. (mask
argument = 0, the folder pair's iSwapAttrib member = 1).
(SERVER) MSI (s) (7C:90) [12:31:06:046]: PROPERTY CHANGE: Modifying
DesktopFolder property. Its current value is
'C:\WINDOWS\system32\config\systemprofile\Desktop\'. Its new value:
'C:\WINDOWS\SysWOW64\config\systemprofile\Desktop\'.

And again, my desktop icons are installed in that folder, but don't show up
on the desktop.

This is strictly a 32-bit application. These are non-advertised shortcuts.
The application files themselves are being correctly installed to Program
Files (x86).

How do I get the icons and program menu items to be available for any user?

Thanks again for any assistance you can give me.
--

Kathy Morey
ProfitStars a Jack Henry Company
kmorey @ profitstars . com

Wilson, Phil

unread,
Mar 2, 2010, 12:44:17 PM3/2/10
to
My guess is that you've run into a security improvement, perhaps related to
session isolation or the rights of the system account. It's not clear to me
that the system account has any access to the desktop on those OS versions.
Does it work if you run the service with a user account?

--
Phil Wilson
The Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972


"KMMorey" <kmorey at profitstars.com> wrote in message
news:7889C1F1-007E-4DAD...@microsoft.com...

0 new messages