Review – Exchange 2007 to 2010 Migration Guide

This week, Paul Cunningham, editor of the Exchange Server Pro website has released his latest book, the Exchange Server 2007 to 2010 Migration guide. Paul kindly sent me a free copy of his new book too look at and after reading it, I thought it was worth sharing a quick review.
I don’t usually do reviews or promotion (and Paul hasn’t asked or paid for a review either) but after a quick read I think that this guide will be pretty worthwhile for many of my readers looking at migrating smaller organizations to Exchange Server 2010.
Paul’s book is around 260 content-filled pages, and covers the tasks involved in planning and migrating to Exchange 2010 in a methodical, project-based scenario moving a small Exchange 2007 organization to a similar sized, highly available Exchange 2010 install.
The kind of tasks covered in the first section of the book range from the pre-requisites you need to cover first, how to analyse your current Exchange 2007 environment using the Exchange Profile Analyser and key areas like assessing your clients before migration. Understandably it’s focused on the migration aspects so areas like sizing your environment aren’t covered as in depth as I would have liked – but Paul provides information on the best documentation out there to do that.
After the planning stages there’s a comprehensive guide on installation of Exchange 2010, including coverage of some key gotchas when introducing it into an Exchange 2007 environment and a good bunch of inline tips as you go along. After setup, Paul’s also ensured that checklists are in place to make sure you double check what you’ve done and document the tests correctly. While not a criticism, there were a couple of areas I thought could have been expanded upon – in particular when configuring storage for logs and databases, I thought it was a pity the best-practice of using a 64KB NTFS allocation unit size wasn’t mentioned. But if that’s my main criticism, that’s a good thing!
In the final sections the book moves onto the core tasks – planning for the actual migration; documenting what you’ve got and testing your migration strategy, then a detailed section on performing the migration itself. Again, checklists are in place along the way to make sure all the bases are covered. Finally, Paul covers the steps involved decommissioning the Exchange 2007 environment, with workarounds for common issues people come across.
As an added bonus Paul provides template documents for the checklists mentioned in the books, and a short but pretty decent guide on backups and restores for Exchange 2010 – the kind of thing you’d want to keep handy.
From a brief read, I can tell this is a book based on real world experience. It covers the kind of things I get asked time and time again and see people stuck with on forums. There are more comprehensive volumes out there on Exchange, covering a lot more topics in a lot more detail, but where I think this book stands out is it’s the guide a lot of small to medium business admins tackling an Exchange migration themselves need to get the job done without much (or even any) help.
Visit Paul’s site for more information on his book and download as an E-Book
Exchange Environment Report v1.5.4
It’s been a few weeks since my last update to the Environment report, but since last time I’ve been incrementally fixing a few bugs reported and added a couple of new requested features.
New Features
- Initial support for /hosting mode installations
- Support for multiple email recipients with the MailTo parameter, e.g -MailTo "person1@org.com",person2@org.com
- Support for filtering by server name using a new parameter –ServerFilter. Use this to limit the report to servers with certain characters in the name, e.g. –ServerFilter “NL-*”
- Support to change whether or not the entire forest is examined with the –ViewEntireForest flag.
- When sending the report by mail, the report is also shown as the message content, for easy viewing on mobiles.
Bug Fixes
- Large deleted item total sizes caused an error due to not setting the variable type to long.
- In Exchange 2003 environments, Back End and Front End roles are not highlighted in the overview section.
- In some circumstances the formatting of the report is not spaced correctly in the overview section.
- Shortened the command used as input to schtasks.exe due to it’s maximum character limitations.
- Non-DAG databases header showed even if no non-DAG databases were present.
- Archive Mailbox information was no longer showing.
In the next release I’m hoping to add a few more features that have been requested, including integrating some new features written and sent in by readers. In the meantime, as always if you have any problems give me a shout at steve@goodman.net or in the comments.
Download the new version from the original article here…
Exchange Environment Report 1.5.3 released
I’ve had a couple of bugs reported in version 1.5 that needed some quick attention, so I’m pleased to release version 1.5.3.
Fixes in this version
- Per-Server Mailbox count could show incorrectly in certain cases. This appears to be due to a known bug in Get-Mailbox where the ServerName is not always valid. A workaround has been implemented in the script.
- Exchange 2003 and earlier server information would not show more than one server. Due to a last minute change in the way the script stores information about pre-Exchange 2007 servers this bug got through testing. A fix has been implemented.
No new features this time around, but if you missed the 1.5 release post, check it out here. As always comments and suggestions are welcome either in the comments or via email.
Download the new version from the original article here…
Setup and use the GAL Photos feature using Exchange 2007 [Updated]
If you're not using Exchange Server 2010 yet, then you might wonder if you can take advantage of some of the newer features available in Outlook 2010. While mailtips, personal archives and automatic mailbox mappings aren't possible, you can make use of the GAL photo feature.
It's fairly painless to enable this and the setup steps for your organisation are the same as Exchange 2010. Once you've sorted the org pre-requisites, then the only piece missing is the cmdlets to import the photos. Although you can use Sharepoint 2010 to do this (and delegate it to end-users), I thought it would be useful to have a simple drop-in Powershell script that can accomplish this in the same way as you can in Exchange 2010.
Getting Active Directory Ready
The AD pre-requisites are fairly simple. You need to ensure the attribute the photo is stored in is replicated to the Global Catalog, and ensure you have either a Windows Server 2008 or later Domain Controller in your domain, or simply prepare your Windows 2003 forest schema for 2008:
- If you are in a multi domain environment, follow "A minor schema change" in the Exchange Team blog post GAL Photos in Exchange 2010 and Outlook 2010. If it's a single-domain environment you're all set.
- If you don't have at least one Windows 2008 / 2008 R2 Domain Controller, you need to run adprep /forestprep from the 2008/2008 R2 setup CD as described in the article Prepare a Windows 2000 or Windows Server 2003 Forest Schema for a Domain Controller That Runs Windows Server 2008 or Windows Server 2008 R2. You don't need to install a Windows 2008 / 2008 R2 domain controller, just update the schema. More details on why this is required here.
Importing Photos
In Exchange 2010, you use the Import-RecipientDataProperty cmdlet to import photos. This command isn't provided in Exchange 2007 so I've written a short Powershell script that can do this for you. It's usage is almost identical to the Import-RecipientDataProperty cmdlets, except that you don't need to specify which property to import (obviously) and you don't need to do submit the file as a byte-encoded array - you just give the filename.
Usage is simple:
Then, once AD has replicated, the Offline Address Book is updated (for example, using Update-OfflineAddressBook "Default Offline Address Book"), and clients have downloaded the new OAB, photos should now show in Outlook 2010 (or 2003 and 2007 - check my previous article!)
Removing Photos [New]
If you want to remove a photo from a contact, you need to clear the relevant attribute in Active Directory. As above, I've provided a script that can do this - for example, to clear the GAL picture:
The Import-Picture.ps1 and Clear-Picture.ps1 Scripts
#
# Import a JPEG file into Active Directory for use as the Exchange / Outlook GAL Photo
# Best results - Under 10K, 96 x 96
#
# Steve Goodman
if (!$Identity)
{
throw "Identity Missing";
}
if (!$Path)
{
throw "Path Missing";
}
if (!(Get-Command Get-User))
{
throw "Exchange Management Shell not loaded";
}
$User = Get-User $Identity -ErrorAction SilentlyContinue
if (!$User)
{
throw "User $($Identity) not found";
}
if (!(Test-Path -Path $Path))
{
throw "File $($Path) not found";
}
$FileData = [Byte[]]$(Get-Content -Path $Path -Encoding Byte -ReadCount 0);
if($FileData.Count -gt 10240)
{
throw "File size must be less than 10K";
}
$adsiUser = [ADSI]"LDAP://$($User.OriginatingServer)/$($User.DistinguishedName)";
$adsiUser.Put("thumbnailPhoto",$FileData);
$adsiUser.SetInfo()
#
# Clear the GAL Picture attribute
#
# Steve Goodman
if (!$Identity)
{
throw "Identity Missing";
}
if (!(Get-Command Get-User))
{
throw "Exchange Management Shell not loaded";
}
$User = Get-User $Identity -ErrorAction SilentlyContinue
if (!$User)
{
throw "User $($Identity) not found";
}
$adsiUser = [ADSI]"LDAP://$($User.OriginatingServer)/$($User.DistinguishedName)";
$adsiUser.PutEx(1,"thumbnailPhoto",$null)
$adsiUser.SetInfo()
Finally, if you have any problems or questions, let me know as usual in the comments…


