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?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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.
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.

Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

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.

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).

zos007Author 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


Experts Exchange Solution brought to you by ConnectWise

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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.