Monday, November 03, 2008

Fixing Applications in Vista when you use Roaming or Mandatory Profiles

Windows Vista uses a new directory structure in the users profile for application data. Instead of the folder being called Application Data as in Windows 2000 - Windows XP Microsoft renamed it AppData and created a redirect shortcut to it. (and the profiles are under Users instead of Documents and Settings of course) To further confuse things Microsoft created 3 subfolders under AppData called Local, Roaming and LocalLow.

The confusion and problems arise with roaming and mandatory profiles when you install an application and it puts its data in the LocalLow folder. You see the LocalLow folder can NEVER roam! You can't redirect it either! This was Microsofts way of speeding up profile loading but it created a big headache for system admins. Yes the application data in the locallow folder may have a lot of files and slow down profile loading but in order for a user to move from machine to machine you sorta kinda need them. Duh!

Our problem was with ADP Etime. It used an older version of Java and put the Jar Files into the Locallow folder. If you use a mandatory profile users would have to download the Jar files at every login to the etime app and would have to wait 10 minutes each time for them to download from ADP. (note this doesn't happen for local users because their profile doesn't get overwritten and the locallow folder and its contents remain on the workstation.)
Further if you moved from PC to PC you would have to download the adp Jar files every time you logged in. I came up with the idea to copy the Java Jar files out to a folder on the users hard disk of their workstation and then use robocopy to copy the Jar files into the locallow folder when the user logged in.

This problem is not specific to Adp Etime or Jav either, it happens with flash, quicktime and all sorts of other Internet Explorer Plug Ins!

Anyways I copied the etime Jar files to a folder called Sun on the users C: drive of their workstation and then put the following robocopy command in a text file and saved it as a .cmd file. I placed the .cmd file in the users startup folder of their profile.

robocopy c:\sun "C:\Users\%username%\AppData\Locallow\sun" /e

(note command should all be on one line)

This one copies the SUN folder I put in the C: drive to the users locallow folder creating the sun directory and all subdirectories as needed.

You could do this from a network drive using a UNC

robocopy \\Fileserver\sun "C:\Users\library2\AppData\Locallow\sun" /e

(note command should all be on one line)
This command would copy the SUN folder from the Fileserver onto the workstation. Note the user MUST have access to the share on the file server though.

Microsoft actually did something right by making the Robocopy command native in Windows Vista! You don't have to go out looking for it or download it.

It is a simple work around I know but a necessary one if you want to use roaming or mandatory profiles on Windows VIsta and maintain downloaded JAR files or browser plugin installations across workstations. All you need do is substitute the Sun folder in the above command with the folders you need to replicate like Quicktime and Adobe and put those folders in an accesible place.

No comments: