Microsoft Exchange Server 2010 comes in two versions: enterprise and standard. The biggest difference between the two versions is the higher price charged for the enterprise edition because of its ability to support one hundred mounted databases per server whereas the standard edition can handle just five. In fact, an identical code base is used for the two editions with functionality controlled by bits set when a server is licensed by inputting a license key through the Exchange Management Console (EMC) or by running the Set-ExchangeServer cmdlet in the Exchange Management Shell (EMS). Different product keys are used for enterprise and standard editions, which is how Exchange “knows” how a server should behave.
Given that we’re dealing with software and that the two versions are differentiated through the license key, it might come as a surprise to learn that Microsoft does not support the use of license keys to downgrade an Exchange server from enterprise to standard edition.
It seems like it should be possible to simply input a new license key to prompt Exchange to figure out what version is now running on a server and behave accordingly. Alas, this is not possible and no amount of frantic execution of Set-ExchangeServer will convince an Exchange server to change its mind. Once licensed as the enterprise edition, it stays licensed. On the other hand, it is possible to upgrade a server from standard to enterprise by inputting the appropriate key, all of which creates the unpleasant thought that Microsoft is perfectly willing to accommodate those who wish to pay it more money for an upgrade whilst forcing those who are unwise enough to want to downgrade to go through the pain of uninstalling Exchange from a server and then reinstalling the software before the correct product key can be entered.
However, there’s a dirty little secret here. As you’re probably aware, Exchange uses Active Directory to hold configuration data about the organization, including servers. Each server is a separate object and among the properties of the server we find an attribute called msExchangeProductId, which is used to hold license information. It doesn’t hold the product key that you input to license a server. Rather, it holds a value derived from the product key that reassures Exchange that a server is properly licensed and informs it what version is licensed.
Microsoft support won’t like you doing this and you are unwise to take advice from stuff you read from the Internet, but someone once told me that if you use ADSIEdit to clear the msExchangeProductId attribute for a server, Exchange promptly regards that server as no longer being licensed. In fact, the server has reverted back to running the trial edition of Exchange (functionally equivalent to the standard edition with the added benefit of being nagged about licensing after the 120 day trial period expires). Furthermore, I also heard, possibly from the same source, that if you then went and input a standard key using EMC or EMS, Exchange would be happy to regard the server as being properly and correctly licensed with the standard edition and so limited to mount just five databases.
Anything’s better than having to go through the tedium of uninstalling and reinstalling a server and I’ve followed these steps to successfully downgrade a server. The caveat exists that Microsoft doesn’t document or support the process so I guess if things really go bad with the server later on you might be in danger of having a totally unproductive conversation with your favorite support staff. On the other hand, this is a downgrade process and no great harm seems to occur to the server. At least, none that I can determine. And you don’t really have to tell anyone how you downgraded the server, do you?
For a look at another interesting Exchange 2010 licensing issue, see Paul Robichaux's "A New Wrinkle in Exchange 2010 Licensing."
Follow Tony @12Knocksinna