Dim objNameSpace, cdoSession, cdoFolder Sub Item_Open() On Error Resume Next Set objNameSpace = Item.Application.GetNameSpace("MAPI") Set cdoSession = CreateObject("MAPI.Session") cdoSession.Logon ,,False,False,-1,True End Sub Sub cmdPickFolder_Click() On Error Resume Next Dim objFolder Set objFolder = objNameSpace.PickFolder() Set cdoFolder = cdoSession.GetFolder(objFolder.EntryID, objFolder.StoreID) Item.UserProperties.Find("FolderName").Value = cdoFolder.Name Set objFolder = Nothing End Sub Sub cmdFixDocs_Click() On Error Resume Next UpdateSenders cdoFolder, Item.UserProperties.Find("Exchange Server").Value End Sub Sub UpdateSenders(objFolder, strExchangeServer) On Error Resume Next Dim cdoLocalSession, colMessages, objMessage, objTempMsg, objCopy Dim objStore, tmpFolder Dim intCount, i, intCN Dim strProfile, strSender Set cdoLocalSession = CreateObject("MAPI.Session") Set colMessages = objFolder.Messages '* Modified changes with item updates, so new copies will be overlooked colMessages.Sort 1, &H30080040 'CdoPR_LAST_MODIFICATION_TIME intCount = colMessages.Count For i = intCount to 1 Step -1 Set objMessage = colMessages.Item(i) strSender = objMessage.Sender.Name '* Parse out username if in X.400 format intCN = InStrRev(LCase(strSender), "cn=") If intCN > 0 Then strSender = Mid(strSender, intCN + 3) End If strProfile = strExchangeServer & vbLF & strSender '* Login as owner of current message cdoLocalSession.Logon , , , , , , strProfile '* Walk through stores and rootfolder folders to initialize public folders '* Doesn't work without this * For Each objStore in cdoLocalSession.InfoStores If objStore.Name = "Public Folders" Then For Each tmpFolder in objStore.RootFolder.Folders Next End If Next '* Get message and copy it to the current folder Err.Clear Set objTempMsg = cdoLocalSession.GetMessage(objMessage.ID, objMessage.StoreID) Set objCopy = objTempMsg.CopyTo(objFolder.ID, objFolder.StoreID) objCopy.Update '* Logoff of local CDO Session cdoLocalSession.Logoff '* Delete old Message If Err.Number = 0 Then objMessage.Delete Err.Clear Set objMessage = Nothing Set objTempMsg = Nothing Set objCopy = Nothing '* Because we're creating a new one before we delete the old one, the message count '* should stay the same and the For...Next loop should continue to loop properly Next Set objMessage = Nothing Set objTempMsg = Nothing Set objCopy = Nothing Set colMessages = Nothing Set cdoLocalSession = Nothing Set objStore = Nothing Set tmpFolder = Nothing End Sub Sub Item_Close() On Error Resume Next cdoSession.Logoff Set objNameSpace = Nothing Set cdoSession = Nothing Set cdoFolder = Nothing End Sub 6. Import the Forms beck into the org using your Outlook client. Here are the tools you can download for help with importing and setting these folders: UpdateSenders v2.oft Try to get all of this done with enough time to configure site replication and to allow overnight directory synchronization. Client Modifications Reset the Profile-Manual Procedures Even though the settings on the Outlook profiles are still correct, Outlook will not be able to connect to the server. The Outlook profile must be reset in order for the user to connect to the server. Log in to the client computers as the user and right-click the Outlook icon to view the properties. Select the Exchange Server item and click the Properties button. Place the cursor in the Server field and remove the last letter of the server name. Retype the letter and click the Check Name button. The user’s name should become underlined identifying connectivity to the new server. From the Start Menu, click Start, Run and type Outlook.exe /resetoutlookbar and press Enter. This process will rebuild the bar as new. Any customization will be lost. Reset the Profile-Script I wrote a small VB application to automatically allow access to the Exchange Server without touching the desktop. By adding the following lines to the login script, the profile will be reset and the Outlook Bar reset: @echo off if exist %temp%\step1.flg goto check2 >NUL outloo~1.exe if not "%OS%" == "Windows_NT" goto WIN9 reset.fav goto check2 :WIN9 outlook.exe /resetoutlookbar :check2 echo ECMS>>%temp%\step1.flg exit