Executive Summary:
No in-place upgrade to Microsoft Exchange Server 2007 is possible because Exchange 2007 requires a 64-bit version of Window Server 2003 operating system (OS) and Microsoft Exchange Server 2003 requires a 32-bit version of Windows Server OS. To upgrade your Microsoft Exchange Server organization to Microsoft Exchange Server 2007, you'll need to prepare your existing Acitive Directory (AD) and make sure your domain controllers (DCs) are running Windows Server 2003 service pack 1 (SP1) operating system (OS). You must extend the Active Directory (AD) schema before installing Microsoft Exchange Server 2007 into a legacy Exchanger Server organization.

Deploying Microsoft Exchange Server 2007 requires careful planning. If you're bringing Exchange 2007 into an organization with Exchange Server 2003 or Exchange 2000 Server, you can't just insert the installation disk into one of your existing Exchange servers and run the Exchange Server 2007 Setup wizard. Here's what you'll need to do to make sure your legacy organization is ready to receive the upgrade.

Before You Begin
Exchange 2007 runs only on 64-bit versions of Windows Server 2003. In contrast, Exchange 2003 runs only on 32bit Windows Server OSs. Therefore, an in-place upgrade is impossible. If you want to bring Exchange 2007 into an Exchange 2003 organization, you'll have to perform a migration, which means installing 64-bit Windows 2003 on a new server, installing Exchange 2007, transferring data from an Exchange 2003 server, and then decommissioning the old server if necessary.

You probably have a lot of money invested in the hardware that's currently running Exchange 2003. Assuming that your old servers meet the minimum recommended hardware requirements for running Exchange 2007—for example, they have processors that will work with both 32-bit and 64-bit OSs—you might be able to reuse them. For example, you could migrate the contents of one of your existing servers to a new Exchange 2007 server. When that migration is complete and has been thoroughly tested, you can reformat the old server, install 64-bit Windows 2003 on it, then install Exchange 2007. You could then migrate the contents of another server to this server, and so on, in a leapfrog approach to upgrading. In some instances, you might be able to get away with having to purchase only one new server.

Initial AD Preparation
Every version of Exchange Server since Exchange 2000 has been dependent on Active Directory (AD) for storing information about the organization. Exchange 2007 is no exception, so you'll need to adequately prepare your AD prior to installing the first Exchange 2007 server. Yes, you'll have to extend the AD schema in order for AD to support Exchange 2007, but this step comes later in the process (see the "Final AD Preparation" section below). Right now, you need to make sure the individual domain controllers (DCs) are ready for Exchange 2007.

First, you should verify that your AD's schema master is running Windows 2003 SP1. You can identify the schema master by inserting your Windows 2003 installation CD-ROM into the server's CD-ROM drive and double-clicking the adminpak.msi file found in the CD-ROM's I386 directory. Windows launches the Administration Tools Pack Setup Wizard. Follow the wizard's prompts to install the administration tools pack.

When the installation process is complete, close the setup wizard and open Microsoft Management Console (MMC). In the console, select Add/Remove Snap-in from the File menu. Windows then displays the Add/ Remove Snap-in dialog box. Click Add on the Standalone tab to reveal a list of available snapins. Select the Active Directory Schema snap-in from the list, then click Add, Close, OK.

Now that the snap-in has been loaded, right-click the Active Directory Schema container in the console tree, then click Operations Master on the shortcut menu. As Figure 1 shows, you'll see a dialog box that tells you which server is acting as the forest's schema master. After you've found the schema master, simply right-click the My Computer icon for that server, then select Properties to display the System Properties sheet, which tells you the server's OS and service pack level.

The next step in preparing AD for Exchange 2007 is to verify that the Global Catalog (GC) servers and sites containing Exchange servers are running Windows 2003 SP1. You don't necessarily have to track down GC servers; a better method is simply to verify that every site containing an Exchange server has at least one DC running Windows 2003 SP1. A couple of advantages come with this requirement. First, running Windows 2003 SP1 on your DCs lets users browse the Address Book through Microsoft Outlook Web Access (OWA). Also, administrators are able to look up distribution list memberships more efficiently.

While we're on the subject of GC servers, this is a good time to decide whether yours are up to par. If your AD contains more than 20,000 objects, you'll get better performance by running a 64-bit version of Windows 2003 on your GC servers.

The last step in preparing AD (at least for now) is to make sure the functional level for any domains that will contain Exchange 2007 servers is set to Windows 2000 native or higher. Of course, it's preferable to have a domain functional level of Windows 2003, but you'll have to use the Windows 2000 functional level if the domain contains Windows 2000 Server–based DCs.

To check a domain's functional level, open the MMC Active Directory Users and Computers snap-in. Right-click the domain in the console tree, and select Raise Domain Functional Level. You'll see a dialog box (which Figure 2 shows) that displays the current functional level. If the domain is set to a functional level lower than Windows 2003, the dialog box gives you the option to raise the functional level.

Preparing Your Exchange Organization
After you've done your initial prep work on AD, it's time to turn your attention to your existing Exchange organization and determine the scope of your upgrade. For example, are all your Exchange servers being upgraded to Exchange 2007, or is the upgrade limited to a particular subset of your Exchange organization?

By far the most important consideration is whether you have Exchange Server 5.5 servers present in your organization. Exchange 2007 isn't compatible with Exchange 5.5. Therefore, any Exchange 5.5 servers must be upgraded at least to Exchange 2000 before you can bring Exchange 2007 into your organization.

Exchange 2007 is designed to coexist with Exchange 2003 and Exchange 2000. However, Exchange 2007 doesn't support all legacy features. Exchange 2000 services that aren't supported by Exchange 2007 include

  • cc:Mail Connector

  • Exchange 2000 Conferencing Server

  • Instant Messaging Service

  • Key Management Service

  • Microsoft Exchange Chat Service

  • Microsoft Mobile Information Server

  • MS Mail Connector

Also, Exchange 2007 doesn't support the following Exchange 2003 features:

  • Connector for Lotus Notes

  • GroupWise connector

  • X.400 connector

After you decide which servers to upgrade to Exchange 2007, the next step in the process is to switch your Exchange organization into native mode, which essentially tells Exchange that there are no Exchange 5.5 servers in the organization. I'll assume that you're working with only Exchange 2003; the exact procedure for switching to native mode is different if you're using Exchange 2000.

To switch your Exchange organization into native mode, open Exchange System Manager, then right-click the node that represents your Exchange organization. Click Properties, and the console displays a dialog box that gives you the chance to switch to native mode. Note that this is a one-way conversion: You can't switch back to mixed mode, which is required for Exchange 5.5, after you make the change. As Figure 3 shows, when the process is complete, the dialog box indicates that the Exchange organization is running in native mode.

Suppressing Link State Updates
If your Exchange organization includes legacy servers, you might have to tweak the registry on those servers to suppress link state updates. Exchange 2007 requires that link state information is suppressed, but you'll have to make this modification only if your organization contains more than one Routing Group Connector.

Before I show you what to do, I have to keep the lawyers happy by mentioning that modifying the registry is dangerous. You can destroy Windows and your applications if you make incorrect registry modifications. I therefore recommend making a full system backup before continuing.

With that said, open the registry editor (regedit.exe) on each of your legacy Exchange servers and navigate to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\RESvc\Parameters subkey. Right-click the Parameters container and select New, DWORD. When prompted, create a DWORD value named SuppressStateChanges and set the Value data field to 1. When you're done, restart the SMTP service, the Message Transfer Agent (MTA) Stacks service, and the Exchange Routing Engine service.

If you have a lot of legacy servers, you can perform the registry edit on one server, then export the registry subkey to a file. You could then push the file to the other servers. When each server opens the file, the change will be made to its registry.

Final AD Preparation
As you might recall, when you installed Exchange 2003 for the first time, you could prepare AD by running Setup with the ForestPrep and DomainPrep switches. If you neglected to perform these tasks, Setup would perform them automatically when you attempted to install Exchange 2003. Exchange 2007 offers you a similar AD preparation mechanism that you can run before installation.

Before proceeding, you should perform a full system-state backup of your schema master and of at least one DC in each domain that will contain an Exchange 2007 server. The commands I'm about to show you modify the AD schema, so you'll want a current backup should something go wrong during the AD preparation process.

The first command you must run is

setup /PrepareLegacyExchangePermissions

This command sets some necessary permissions in portions of AD that Setup will modify during the remaining steps. If you skip this step but run the remaining commands, the Recipient Update Service will fail on your Exchange 2003 and Exchange 2000 servers.

The next step in the process is to extend the AD schema by entering the following command:

setup /PrepareSchema

After the schema has been extended, it's time to prepare AD with the following command:

setup /PrepareAD

This command creates the Exchange 2007 administrative group, the Exchange Universal Security Group, and the Exchange 2007 routing group.

The last step in the AD preparation process is to prepare the individual domains in which Exchange servers will reside by typing the command

setup /PrepareDomain:

For target domain, use the Fully Qualified Domain Name. If you have a lot of domains that will host Exchange 2007 servers, you can take a shortcut by preparing all of the domains at once with the command

setup /PrepareAllDomains

Checking for Readiness
You should now be able to run Setup and install Exchange 2007. Before you do, though, I recommend performing one last check: Run the Exchange Server Best Practices Analyzer (ExBPA) to make sure that the existing Exchange organization is ready. You can download the latest version of this free tool from http://www.microsoft.com/exchange/exbpa. At the time this article was written, the most recent version was 2.7. The machine that you install ExBPA on must be running Microsoft .NET Framework 1.1 and must have the IIS Common Files installed.

You'll also need to download the latest updates for ExBPA because the Exchange 2007 readiness check isn't included in version 2.7. When the updates have been downloaded and installed, restart ExBPA and click the link to go to the Welcome screen, followed by the link to select options for a new scan. Now, verify that ExBPA is displaying the name of one of your DCs, then click Connect to the Active Directory server. You'll see a screen that lets you set the scope and type of scan you want to perform. As Figure 4 shows, an Exchange 2007 readiness check is one of the options you can choose. Use this check to verify that your AD and your existing Exchange organization are adequately prepared to accept Exchange 2007.

You're now prepared to complete the Exchange 2007 upgrade process. You can install Exchange 2007, then migrate the data from legacy servers that your Exchange 2007 server will replace. For a quick reference on the tasks to prepare your legacy organization for upgrading, see the sidebar "Step by Step to Exchange 2007."