' - CHANGING THE GROUP POLICY 'Default location for OST files' DOES NOT APPLY TO EXISTING USERS ' - THIS IS BECAUSE ON FIRST USE THE OST LOCATION IS SET IN THE MAIL PROFILE AND DOES NOT CHANGE ' - JUST DELETING THE LOCATION DOES NOT WORK AS OUTLOOK THEN IGNORES EXISTING OST's AND YOU END UP WITH outlook0.ost outlook1.ost outlook2.ost ETC ' - JUST SETTING THE LOCATION DOES NOT WORK AS PEOPLE WITHOUT CACHED MODE GET AN OST THAT GRADUALLY INCREASES IN SIZE ' - SO THIS LOGON SCRIPT CORRECTS THE OST PATH - BUT DOES NOT DELETE OST's THAT ARE NO LONGER USED On Error Resume Next Const HKEY_CURRENT_USER = &H80000001 Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") ' GET DEFAULT OST SETTING FOR OUTLOOK 2007 AND DO SOME CHECKS oReg.GetExpandedStringValue HKEY_CURRENT_USER, "Software\Policies\Microsoft\Office\12.0\Outlook\", "ForceOSTPath", sDefaultOstPath If sDefaultOstPath = "" Then WScript.Quit If Right(sDefaultOstPath, 1) <> "\" Then sDefaultOstPath = sDefaultOstPath & "\" ' ADD THE FILE NAME sDefaultOstPath = sDefaultOstPath & "outlook.ost" ' CONVERT PATH INTO REGISTRY BINARY FORMAT WITH NULLS iLength = Len(sDefaultOstPath) Dim aDefaultOstPath() Redim aDefaultOstPath(iLength * 2 + 1) For i = 0 To iLength - 1 aDefaultOstPath(i * 2) = Asc(Mid(sDefaultOstPath, i + 1, 1)) aDefaultOstPath(i * 2 + 1) = 0 Next aDefaultOstPath(iLength * 2) = 0 aDefaultOstPath(iLength * 2 + 1) = 0 ' LOOP THROUGH ALL OUTLOOK PROFILES SETTING THE OST LOCATION TO THE DEFAULT oReg.EnumKey HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\", aOutlookProfiles If IsArray(aOutlookProfiles) Then For Each sOutlookProfile In aOutlookProfiles ' CHECK IF CACHED MODE IS DISABLED oReg.GetBinaryValue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & sOutlookProfile & "\13dbb0c8aa05101a9bb000aa002fc45a", "00036601", aCachedMode bCachedMode = TRUE If IsArray(aCachedMode) Then If aCachedMode(0) < 128 Then bCachedMode = FALSE End If End If ' SET OR DELETE THE OST LOCATION If bCachedMode = TRUE Then iReturn = oReg.SetBinaryValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & sOutlookProfile & "\13dbb0c8aa05101a9bb000aa002fc45a", "001f6610", aDefaultOstPath) Else iReturn = oReg.DeleteValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & sOutlookProfile & "\13dbb0c8aa05101a9bb000aa002fc45a", "001f6610") End If Next End If Set oReg = Nothing