PDA

View Full Version : CSIDL_COMMON_DOCUMENTS wrong path problem



NewsArchive
02-04-2010, 02:50 AM
Hi Friedrich

I've found a problem where I can get different values for the
CSIDL_COMMON_DOCUMENTS. <g>

This only applies to workstations using accounts connected to a windows
server with roaming accounts.

Basically whats happening is when an installation needs to reboot as its
called from RunOnce the CSIDL_COMMON_DOCUMENTS returns the local workstation
path but the user account is connected to a windows server and the server
overrides the CSIDL_COMMON_DOCUMENTS with a location found on the server
basically so the user can log onto any workstation and their desktop,
policies etc can follow them around regardless of what ever workstation they
log onto.

I've tried getting the installer to wait a period of time after a reboot
(using that work around you suggested to get the message windows to display
after a reboot which doesnt work in this instance either) but the account
settings including the CSIDL changes only take affect after SB has finished
running.

So is there any way I can get SB to load after the server paths have been
applied to the account so I can get the "correct" CSIDL?

Cheers

Richard

NewsArchive
02-04-2010, 02:51 AM
Hi Richard,

> So is there any way I can get SB to load after the server paths have been
> applied to the account so I can get the "correct" CSIDL?

Unfortunately, this is completely out of our control. Windows handles all
this "RunOnce" stuff (btw, that's the only valid registry location to
"restart" a program after a reboot it the modern UAC world).

Of course, if you have your own solution to handle this, you can try to
script it yourself (using the "Edit Registry..." function). The "Reboot
Computer System and Resume" script function does nothing more than writing
the installer location/name to the "RunOnce" registry key (including a
command line switch that sets the %_SB_RESUME% runtime variable to "1" so
the installer knows that this is a reboot) and then reboot the machine.

There are other RunOnce locations available:
http://support.microsoft.com/kb/137367
http://support.microsoft.com/kb/179365
http://msdn.microsoft.com/en-us/library/aa376977(VS.85).aspx

I don't know if any of the above can be used to solve your problem. But if
you find a way to get the "correct" CSIDL, I can add this to the standard
"Reboot Computer System and Resume" (as an option) without any problem.

Friedrich

NewsArchive
02-04-2010, 02:52 AM
Hi Friedrich

Of course the Registry!

The user has to run the installer which means they have already logged in
successfully and thus the CSIDL will be pointing to the server location so I
can just create a registry entry store the CSIDL path that points to the
server before the first reboot, and then look up that registry location
during the reboots. That should overcome it.<g>

Cheers

Richard

NewsArchive
02-04-2010, 02:52 AM
Hi Richard,

> Of course the Registry!
>
> The user has to run the installer which means they have already logged in
> successfully and thus the CSIDL will be pointing to the server location so
> I can just create a registry entry store the CSIDL path that points to the
> server before the first reboot, and then look up that registry location
> during the reboots. That should overcome it.<g>

Cool idea <g>

Friedrich