In the last two weeks I migrated two AD Forests (2000 and 2003) to a new Windows 2008 R2 Forest. Additionally we wanted to migrate the Exchange Environment, two Exchange Orgs.
Cross-Forest Migration from Windows 2000 / Exchange 2000 is not possible. So we used ExMerge to export all the Mailboxes in .PST Files. This Export tooks ten hours for only 300 files.
The other Exchange Organization was 2003. We are not able to connect the old and the new Forest for the “move-Mailbox” command. So we decided to use ExMerge too. If you want to test the cross-forest migration check this link: http://msexchangehelp.wordpress.com/2010/03/13/cross-forest-move-mailbox-request-from-exchange-2003-to-2010/
Information: All Links to the Microsoft Technat are reachable on 30. March 2010.
That was not really a problem but now we run in tons of problems with Exchange 2010.
the first thing you have to search is Outlook 2010 64Bit. We installed this Outlook on the new Exchange Server because the known bug with wrong mapi (overridden through outlook setup) will not happend with the new Outlook.
Important: NEVER use “Remove-Mailbox” ! This will delete the Mailbox AND the user!
Microsoft Technet Article Remove-Mailbox: http://technet.microsoft.com/de-de/library/aa995948.aspx
It sounds crazy but the first thing you should do is to delete the Mailbox of the migrated users. The old Exchange is using different user attributes than the new one. That means that different values are migrated and Exchange 2010 is not able to read it and will throw an error.
Disable-Mailbox -Identity AD.Username -Confirm:$False |
Microsoft Technet Article Disable-Mailbox: http://technet.microsoft.com/de-de/library/aa997210.aspx
So, the next Step is to recreate a new mailbox for the migrated users.
This will be done with the following command:
Enable-Mailbox -Identity AD.Username -Database "Database.Name" |
Microsoft Technet Article Enable-Mailbox: http://technet.microsoft.com/de-de/library/aa998251.aspx
If you use a different language than english you must set the mailbox to that language before the import starts.
Set-Mailbox -Identity AD.Username -language "de-DE" |
Microsoft Technet Article Set-Mailbox: http://technet.microsoft.com/de-de/library/bb123981.aspx
Be sure to write the last two digits in UPPERCASE. Otherwise the language will not switch!
After these steps you are prepared to import the .PST files….
The first thing is to try the import for one user:
Import-Mailbox -Identity AD.username -PSTFolderPath C:\PST\AD.username.PST |
Microsoft Technet Article Set-Mailbox: http://technet.microsoft.com/de-de/library/bb629586.aspx
This command will import the pst to the specific mailbox…
If you are using a Windows 2008 R2 native environment you will find this error with Import-Mailbox:
Error occurred in the step: Approving object. An unknown error has occurred., error code: -2147221219.
With Windows 2008 R2 GC’s you are NOT able to make a successfully import. This is a bug and also happend to Windows Server 2003 R2! In the future this KB will be available: kb981283
I dont know when Microsoft will release this KBArticle but today it is not available on Technet.
Anyway you must install a Windows Server 2008 SP2 GC in your Forest and tell your Outlook to speak only to this GC when it starts the import. Here is the Step-by-Step Guide:
Configure your Outlook 2010 to use Window 2008 SP2 GC not Window 2008 R2 GC.
1. Click Start, and then click Run.
2. In the Open box, type regedit.exe, and then click OK.
3. Locate and then click the following key in the registry:
HKEY_CURRENT_USER\Software\Microsoft\Exchange\Exchange ProviderNote You may have to create the registry path.
4. On the Edit menu, click Add Value, and then add the following registry value:
Value name: DS Server
Data type: REG_SZ (string)
Value data: FQDN of the global catalog server
This Workaround runs for me!
After the import was working i built a script which imported all users from a special OU.
# INITIALIZE CONNECTION [string]$PstFolder = "D:\PST" [string]$OU = "/OU=MigrateThisUsers," $Root = [ADSI]'' $DN = $Root.DistinguishedName # Strip the DC= from LDAP Root name $Domain = $($DN -as[string] -ireplace "dc=", "" ).Split(",")[0] $LDAP = "LDAP://$Domain$OU$DN" # Create a selector and start searching from the root $selector = New-Object DirectoryServices.DirectorySearcher $selector.SearchRoot = $LDAP # ----------------------------------------------------------- # Filter the users with -like "CN=Person*". Note the ForEach loop [array]$Users = $selector.findall() | where {$_.properties.objectcategory -like "CN=Person*"} Measure-Command { # IMPORT MAILBOXES ForEach ($User in $Users) { If (!($User.Properties.proxyaddresses -isnot [Object])) { If ($User.Properties.proxyaddresses -ne $null) { [string]$MailPrefix = $User.Properties.proxyaddresses[0].Split("@")[0].Remove(0, 5) } if ($MailPrefix -eq $null) { [string]$MailPrefix = $User.Properties.name } If (Test-Path "$($PstFolder)\$($MailPrefix).pst") { Disable-Mailbox -Identity "DOMAIN\$($User.Properties.name)" -Confirm:$False Enable-Mailbox -Identity "DOMAIN\$($User.Properties.name)" -Database "DATABASE" | out-null Set-Mailbox -Identity "DOMAIN\$($User.Properties.name)" -Language "de-DE" Measure-Command { Write-Host "Importing Mailbox for user $($User.Properties.name)" Import-Mailbox -identity "DOMAIN\$($User.Properties.name)" -PSTFolderPath "$PstFolder\$MailPrefix.pst" -BadItemLimit 1000 | out-null } | %{$SingleTime = $_.Minutes} write-host -foregroundcolor green -nonewline "User $($User.Properties.name) imported and tooks $SingleTime minutes!`n" } } } } | %{$LapTime = $_.Minutes} Write-Host -ForegroundColor White "`nComplete Import finished in $LapTime minutes!`n" |
I want to thank Martin Zugec and Guido Roock to help me with the Script! Have a look at Martin’s Blog http://out-web.net
Have fun and a successfully migration of your Exchange Migration.
HoL1n
Product Release Announcement – Citrix EdgeSight for XenApp 5.3
Citrix EdgeSight for XenApp 5.3 has been “Released to Web” (RTW)
The EdgeSight team is pleased to announce the release to web of Citrix EdgeSight for XenApp (Services monitoring) 5.3.
** Citrix EdgeSight manages application performance and availability where it matters most – at the business user level. By providing a direct line of sight across networks, servers, databases and desktops, EdgeSight goes beyond traditional device and network monitoring tools to improve application visibility. This consolidated view of application performance as experienced by the user, gives IT the necessary tool-set to lower costs, reduce downtime and improve service delivery.
** The Citrix EdgeSight product line provides the real time visibility necessary to test, deliver and monitor the performance of virtualized applications, virtual desktops, physical desktops and web based applications ensuring the best end-user experience.
Key updates include:
XenApp 6
Metering and Measuring:
The media is now posted for download via MyCitrix and will be available on the XenApp 6, XenApp 5 FP3, and XenDesktop 4 FP1 media .

Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 