Controlling Microsoft Outlook 2003 Cache Mode....Possible?


I work with a medium/large organisation which has around 450 sites to 15000 workstations. We use MS Exchange and Outlook 2003 with Cache Mode enabled by default on all workstations. We have a centralised Exchange environment and to date we have been beating our heads against a brick wall trying to solve a serious WAN link performance issue. Whilst Outlook in Cached mode works well for most reasons it is absolutely crippling our environment for the following reason,

About 60-70% of our users are stationary but the other 30% or so travel to other sites or hot-desk within the same office. This being the case means that the Exchange Mailbox is downloaded/synchronized to every workstation that the user logs onto to. The average size mailbox = 1GB with some as high as 5-8GB.

To date, my login scripts are setup to detect if the user is logging onto their "Default" site. So having gotten this far I am then able to manipulate end user behaviour (and for most cases this is true)........except for MS Outlook. I was hoping that I could control Outlook Cache mode by manipulating the registry but it seems I have come undone here.

My login scripts create 2 variables

If the value of USERLOC and WKSLOC are the same I want to be able to turn Mailbox Caching ON
If the value of USERLOC and WKSLOC are NOT the same I want to be able to turn Mailbox Caching OFF

Here is something to think about, If I logon to a PC that I have never used before Outlook will create a brand new profile (backs up any old profile) in registery and starts caching the mailbox over the WAN. Remember, my login scripts have already run....Too late

OK..How about PRF files in append mode. Can I intruct Outlook via PRF files on how it is going to behave for that user's session without scrambling the user's existing setup for example signature and address history?

There are infact 2 settings that must be changed in order to disable Outlook Cache Mode,

1. Use Cached Exchange Mode
2. Send/Receive - Make this folder available offline

Disabling setting 1 does not turn off setting 2...check your packet scans

QUESTION Time: Has anybody been successful in putting together a solution for this type scenario?

Who is Participating?
zos007Connect With a Mentor Author Commented:
Looks like we have created a solution here.

We created a VBS script that checks to see if the user logging on already has a "User" profile that exists on the workstation. If it exists it just launches OUTLOOK.EXE. If it doesn't exist it run Outlook via PRF file (Turn Cache Mode OFF by default). Turning Cache mode off by default is the key here.

Via my login scripts I am now able to detect the following,
1. If it's a Laptop user Cache = ON (Always)
2. I am able to control an entire site, Cache Mode ON or OFF
3. If a user travels from their default site and logs onto a workstation at another site it turns Cache Mode OFF.

Here is a sample of the script...also the code in the login script is based on Novell eDirectory.
There are 2 scripts that I run during the login process,
1. Workstation Location Script (is based on workstation IP address/IP range for the site)
    We want to control cache mode from the location of the workstation (because workstations don't travel...users do)...Our Location Scripts are based on the HEX value of the IP address range for the site.
    SET EMAILCACHE = "Z:\CACHEON.REG"     ! We control CACHE ON or OFF for an entire site

Ok here we go, the code is fairly simple to understand.
2. User Container Script
    This scripts sets up a variable USERLOC=xxx (Where xxx=a site code)

IF "%<PCTYPE>"="Laptop" OR "%<PCTYPE>"="Tablet_PC" THEN BEGIN
         @REGEDIT /s %<EMAILCACHE>   ! This is the value of EMAILCACHE from the workstation script.
         @REGEDIT /s "Z:\CACHEOFF.REG"  ! USERLOC and WKSLOC didn't match so Cache = OFF
; End Email Cache

I hope this helps anyone else in the same situation

MesthaConnect With a Mentor Commented:
For users who move around I would deploy terminal services, so that things stay put. Have them login to that.

Another option would be to use group policy, and stop cached mode from being available for those users. If they move around so much, having cached mode in their home location is not going to be worth while.

zos007Author Commented:
Hi Mestha, thank you for your prompt response. I'm not quite sure if this is the solution I am looking for. I believe that Terminal Services has issues as well where the TS license has a lease time of 90 days. For example, if I have 20% of 15000 workstations being used by travelling or hot-desk users, I would require at least 4000 TS Licenses.
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

MesthaConnect With a Mentor Commented:
I can't comment on licensing factors for terminal services, there are various ways of licensing it, particularly with Windows 2008, that allow application type publishing etc.

The other option is to work live rather than cached mode. You would lose indexing, but that wouldn't apply because the users are not at the machines long enough, but it should be usable if you have decent bandwidth.

zos007Author Commented:
Going online was my preference but I am not sure if the "End User" will accept it as it will significantly slow down Outlook for opening up attachments. MS Outlook in our environment is a core application. Our remote links vary from 1-1000Mb depending on location and importance. I have seen lots of links for Outlook cache mode issues but no one seems to have the answer I am looking for.

I do not want to disable Outlook Cache Mode to 15000 users. I want to disable cache mode only for  traveling users. Disabling Outlook Cache Mode to soooo many remote sites means that if the WAN link fails the remote site Outlook fails. Like I said previously, I am detecting a traveling user via login scripts already but how can I apply this to Outlook is the question.

MesthaConnect With a Mentor Commented:
You could disable cached mode using group policy to set of users and/or machines, if you have a known set of either that may well be something that can be done.

Cached mode is set during the Outlook profile configuration primarily, so another option would be to have the profile destroyed for the roaming users each time, with exclusions on the home systems.

I don't think detecting the location of the user is going to work.

Of course, most companies don't have this issue because if a user is travelling they would be given a laptop. If the users were visiting known locations only, then terminal services would still be the method I would recommend if there was a reluctance for laptops to be used (or could not be used for security reasons).

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.