I never really intended for this to be a technology blog, but considering that IT is both my job and my hobby, it’s only natural that a few technology based posts will pop up from time to time.
I’m hoping that I can save at least one person from the personal hell I suffered over two days this past week. Before I go on, I should perhaps make it clear that yes, I’d love a test lab to play with these things and learn on, but I haven’t got one and the bean counters won’t pay for one, so I have to sort this stuff out on the fly… 🙁
The background is that I’m currently deploying my first Microsoft Exchange 2010 solution, based on a design from one of our company’s technical architects, and it’s a bit of a learning experience for both of us. I did the Exchange 2010 instructor led course about 18 months ago, and I currently manage about 5 fairly large Exchange 2007 organisations, along with a couple of Exchange 2003. I passed my first MCP in Exchange 5.5 back in 1999, and I passed the Exchange 2003 exam a few years later. Although I attended an instructor led Exchange 2007 course, I never took the exam. I’m considering now taking the Exchange 2010 exam.
It had been decided in the design that we would be using Database Availability Groups (DAGs) for resilience, with two servers having the mailbox role, and two servers having the Hub Transport and Client Access Server roles. 4 VMs were built with Windows Server 2008 R2 Standard, and passed to me for Exchange installation and configuration.
The HT/CAS server install was a breeze – I got my certificates on there, configured my logging and connectors, published OWA through ISA etc, all good. I was documenting my process as I went along, which slowed things down a little, but it should speed things up for my next (very similar) installation in a few weeks for a different client!
I got my Mailbox servers installed, and started to configure and document the DAG. When adding my DAG members, I got the lovely error reminding me that I couldn’t add a server running Windows Server 2008 R2 Standard to the DAG, as you need at least Enterprise to install failover clustering, which is required for DAGs. Bugger.
I had an option at this point to uninstall Exchange, wipe the servers and start again with clean VMs on Enterprise. We absolutely needed resilience, and licensing was covered from our DataCenter license, so not using DAGs was out of the question. A quick hunt on Google seemed to suggest that to change the version of Windows from Standard to Enterprise, one simply had to insert the DVD and click Upgrade. At this point, a snapshot was taken of each server, for which I am extremely grateful, as I went back to this point at least twice!
So I mounted the ISO, hit upgrade, and let our corporate build do its magic. Oops, that dropped the server off the domain and started reinstalling all our customisations again. Back to snapshot! Downloaded the raw ISO from Microsoft, mounted that, hit upgrade – yay – after a few hours, Windows was upgraded, my databases appeared to be mounted, all appeared good. Until I went into the Exchange Management Console and Shell. Error after error after error. I followed some troubleshooting articles, I used my years of experience, I upgraded the second server, all the same. Bugger – back to snapshot. At this point, I find the Microsoft Article which says that upgrading Windows with Exchange 2010 installed on the box is not supported (imagine a loud blood curdling scream at this point). I felt my only option was going to be to uninstall Exchange at this point and do the clean install again on Enterprise.
“Surely somebody must have tried this upgrade and been successful” I thought. I really didn’t want to have to start again, so I had a deeper, more focussed search on Google. Most of the articles and TechNet forums I read just pointed at the “upgrade is not supported” article, and said it couldn’t be done, but I started noticing one or two that referenced DISM with regards to successful upgrades. A few minutes later and I had a plan.
I went on the server and had a look to see if DISM would run. I typed :
DISM /online /Get-CurrentEdition
Bingo – it says I’m running Standard Edition. My hopes rising, I typed :
DISM /online /Get-TargetEditions
Woohoo – I can upgrade to DataCenter or Enterprise. Crossing everything I’d got, I typed :
DISM /online /Set-Edition:ServerEnterprise
Bugger – it wanted my product key. No problem, we use KMS, get a generic key from the Microsoft site and try again :
DISM /online /Set-Edition:ServerEnterprise /ProductKey:489J6-VHDMP-X63PK-3K798-CPX3Y
Job done! Less than an hour later, I had two fully upgraded Mailbox servers running Windows Server 2008 R2 Enterprise, with Failover Clustering installed and a fully working and documented DAG.
Bye bye snapshots, and thank you for saving my sanity and more hours of my life.
So there you go. Try DISM, it’s an awesome little tool, and if you’re using virtual machines, always, always, always snapshot before making a change!