Reference Information
Supporting functions and subs
For more details on this function see my other
article,
Searching the AD.
Function FindObjectPath (SearchField,SearchFieldValue,SearchDomainDN)
Dim oConnection, oCommand, oResults
FindObjectPath = ""
Set oConnection =
CreateObject("ADODB.Connection")
Set oCommand = CreateObject("ADODB.Command")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "Active Directory Provider"
Set oCommand.ActiveConnection = oConnection
SearchField = Trim(SearchField)
SearchFieldValue = Trim(SearchFieldValue)
sQuery = "SELECT ADsPath FROM 'LDAP://" &
SearchDomainDN & "' WHERE " & _
SearchField & " = '" & SearchFieldValue & "'"
oCommand.CommandText = sQuery
Set oResults = oCommand.Execute
On Error Resume Next
FindObjectPath = oResults.Fields("ADsPath")
On Error GoTo 0
If FindObjectPath <> "" Then
' Removed LDAP://
from path so it can be replaced with a bind to a specific DC later
FindObjectPath = Replace (FindObjectPath,"LDAP://","")
End If
End Function
Additional Information
Requirements to run ExMerge
1)
Account running ExMerge must have full rights to all mailboxes
being migrated
A)
This includes Send As and Receive As rights in the AD on Exchange
2000 mailboxes
2)
Target mailbox must already exist
3)
Source and target mailbox\user account must be enabled
4)
Both mailboxes must be visible in the GAL
Common errors and solutions when running ExMerge
The following error messages come from the ExMerge
log files
1)
"Error opening message store (MSEMS). Verify that the Microsoft
Exchange Information Store service is running and that you have the
correct permissions to log on. (0x8004011d)"
Below are some
possible solutions to this error message:
A)
Make sure both the source and target accounts are enabled
If you just enabled the
accounts you will need to wait for the changes to be replicated to all
DCs
B)
Make sure the permissions are set so the account doing the
migration has Send As and Receive As on all mailboxes being migrated in
the source and target Exchange Orgs
i)
Add the account doing the migration to the "Exchange Domain
Servers" group
ii)
Open up Exchange System Manager and navigate to the server the
mailboxes are being migrated to and choose Properties
iii)
Click on the Security tab and click Add
iv)
Select the account you will be using to migrate the mailboxes and
click OK
If the account that is being used is already listed make sure the
all of the permissions are set to Allow. If Deny is inherited you can
still check Allow, which will override the inherited Deny.
v)
Click OK again to save the permissions
vi)
Right click on the root of the tree, the Org name, and select
"Delete Control"
vii) Add
the accounts that will be used to migrate mailboxes as "Exchange Full
Administrators"
viii)
Restart the "IIS Admin Service" on both servers
This will stop all services on the system, this should be done after
hours only
?
Q259221 - Security Tab Not Available on All Objects in
System Manager
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q259221
?
Q262054 - Get Service Account
Access to All Mailboxes in Exchange 2000
C)
Check the "msExchUserAccountControl" property of the mailbox
giving the error in the target domain
1)
Set the value to "0" (zero) if it is not already 0
2)
"CADRoutines::GetNamingContextData"
This is normally caused by the mailbox, source or target, being
hidden from the GAL
A)
Check to make sure the migration account has Send As and Receive
As on the mailbox
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q323546
B)
Make sure the user you are trying to migrate is visible in the
address book
C)
Check the "showInAddressBook" attribute of the user in ADSIEdit,
it should have some values. If it does not run a manual Recipient
Update Service rebuild and wait for the updates to be replicated
3)
"Error creating EntryID" & "Invalid target DN. Unable to
merge data into mailbox"
This is normally caused by a non-existing target mailbox or where the
source and target do not have a matching alias
A)
Check to make sure the user exist in the target domain
B)
Make sure the user is mailbox enabled
C)
Make sure the source, Exchange 5.5, directory name and target E2K
alias are the same
1) If
not do the two step migration process with ExMerge, after step 1 rename
the PST file to be the same as the users alias name in the target domain
Or you can carry out the steps in 4) "Error extracting information from server DN '' (CMapiSession::GetInfoFromProfile)?"
4)
"Error extracting information from server DN '' (CMapiSession::GetInfoFromProfile)"
This is normally comes up when the source and target mailbox's alias
don't match, normally because the target mailboxLegacyExchangeDN field
has been appended by a number.
A)
Using ADSI Edit view the target account's LegacyExchangeDN field
B)
Compare this with the value in the input MAILBOXES.TXT file for
this account
Chances are that the LegacyExchangeDN name in the target domain has a
number after to it, indicating that this LegacyExchangeDN is already
used be another user
C)
Update the original MAILBOXES.TXT with the correct target
LegacyExchangeDN
5)
"CAdminProfileRoutines::CreateSystemAttendantProfile"
A)
Can be ignored, the System Attendant mailbox is not migrated over
|