Ok, yes I know – I said that Part 8 was the last in this particular series – but then Microsoft went and released Cumulative Update 1 (CU1) for Exchange 2013 (on April 2nd) which left me feeling that if I did not cover this – then the LAB series was not properly completed. For those of you who are just joining us – you can find links to the previous parts below.
Part 1
We established our domain design, covered how to provision the Domain Controller for the LAB in Hyper-V and then how to install Windows Server 2012 on the Domain Controller.
Part 2
We went through the process of installing Active Directory Domain Services on the LAB domain controller using PowerShell.
Part 3
We covered how you can install a very simple PKI infrastructure on the domain controller using Active Directory Certificate Services. These will be used in a later part to configure SSL for various parts of Exchange 2013.
Part 4
We covered how to use PowerShell to provision Exchange server VM’s in the lab, and went through the pre-requisite software installation.
Part 5
We covered the Directory, organisation and Exchange preparation – and then went on to install the relevant Exchange servers using the unattended setup feature.
Part 6
We covered Database Availability Groups and provided a script which automates the creation of DAGs from a CSV.
Part 7
We covered adding databases to the DAG and configuring SSL.
Part 8
We covered the creation of user accounts in Active Directory then using Exchange Bulk User Creation tool to create the user Mailboxes, then the creation of a number of Distribution Lists rounded off with the creation of “Modern” Public Folders.
Each CU is a full Exchange standalone image, which means that it cannot be uninstalled (unless you remove all of Exchange) and should a CU fail part of the way through – you will have to recover the Exchange Server using the /M:RecoverServer – again this is not new as the traditional Exchange Service pack used this model. Service Packs are still likely to be provided periodically.The Cumulative Update Servicing model is new to Exchange, but not a new concept. People who have worked with Lync server will be very familiar with the concept. From Exchange 2007 many of you will be know that Exchange used Role Up’s as interim collections of “hotfixes” with the occasional feature change between Service Packs ~ however for Exchange 2013 updates will be quarterly using the Cumulative Updates Service model.
One other thing to note is that with each CU being a full Exchange image, unlike Roll Ups they can also be used to install the full version of Exchange Server.
Before I get into the process of performing the upgrade to the lab – it is probably worth you having a read of the article that I wrote "Exchange installs and upgrades the good, the bad and the ugly" which discusses additional steps that can help ensure an upgrade goes smoothly – in particular the bit about ensuring there are no reboots outstanding.
As this is a LAB I will leave it up to you if you go through the steps of backing stuff up (just remember in production that is a mandatory step!) – so without any further “ado” – lets get to the upgrade process.
The upgrade order should be as follows:
Therefore log onto art-MBXCAS-01 and download the Exchange 2013 CU 1 update. When you have downloaded the binary double click on it to extract the installation to a location on the server.
Before we begin the process of updating the Schema, preparing AD and then the domain we should put art-MBXCAS-01 into maintenance mode as the CU prerequisites check is known to stop the transport services. In order to do this you should execute the following Powershell Commands (thanks to fellow MVP and Exchange Certified Master Brian Reid for the expanded syntax for each command – please visit his blog for the original article on which these are based)
Open an Exchange 2013 PowerShell command prompt and type each of the following commands:
Set-ServerComponentState $env:COMPUTERNAME -Component HubTransport -State Draining -Requester Maintenance
Redirect-Message -Server $env:COMPUTERNAME -Target art-mbxcas-01.artTest.local
Suspend-ClusterNode $env:COMPUTERNAME
Set-MailboxServer $env:COMPUTERNAME -DatabaseCopyActivationDisabledAndMoveNow $True
Set-MailboxServer $env:COMPUTERNAME -DatabaseCopyAutoActivationPolicy Blocked
Set-ServerComponentState $env:COMPUTERNAME -Component ServerWideOffline -State Inactive -Requester Maintenance
Get-ServerComponentState $env:COMPUTERNAME | Format-Table Component,State –Autosize
Get-MailboxServer $env:COMPUTERNAME | Format-Table DatabaseCopy* –Autosize
Get-ClusterNode $env:COMPUTERNAME | Format-List
You can save time by copy and pasting each of the above commands into a PowerShell script file (which I have done in the screenshot below) and then executing that from the Exchange Management Shell.
If you do choose to use a script file – remember the guidance that I provided executing script file from the Exchange Management Shell.
One the server has been placed in maintenance mode we are ready to begin the process of updating the LAB’s directory environment. From the location where you extracted Exchange 2013 CU1 binaries open an administrative command prompt and type in the following command:
Setup.exe /PS /IAcceptExchangeServerLicensingTerms
Note: If you do not include the /IAcceptExchangeServerLicensingTerms parameter setup will halt (yes I know its a pain)
Setup will then begin the process of upgrading the Schema – see below.
When the Schema has been upgraded you will then need to run the following command
Setup.exe /PrepareAD /IAcceptExchangeServerLicensingTerms
Just so you know I am going by the release notes here – normally I would have expected the /PrepareAD switch to prepare the schema and the domain – but I did not get the chance to test this idea, so I stuck to the Microsoft provided guidance.
The output of the /PrepareAD switch is provided below:
As the final part of preparing Active Directory you should execute the following command line:
Setup.exe /prepareDomain /IAcceptExchangeServerLicensingTerms
The output of which is provided below:
After the directory preparation has been completed – You should now be in the position to upgrade the Exchange install on art-MBXCAS-01 server. From the command prompt type in the following command:
Setup.exe /m:Upgrade /IAcceptExchangeServerLicensingTerms
Setup will then begin the process of upgrading the Exchange installation on the server.
When Setup has completed I recommend that you reboot the server even if you are not prompted. There has been some discussion on a few mailing lists that I am a member of which suggests that the unattended setup should always prompt you to reboot but is not doing so (whereas the GUI setup does) – I have been seeing this as well.
When you have rebooted the server you need to return is back to normal operation (take it out of maintenance mode) by using the following PowerShell commands from within the Exchange Management Shell (again thank you goes out to Brian Reid for these command lines):
Set-ServerComponentState $env:COMPUTERNAME -Component ServerWideOffline -State Active -Requester Maintenance
Resume-ClusterNode $env:COMPUTERNAME
Set-MailboxServer $env:COMPUTERNAME -DatabaseCopyActivationDisabledAndMoveNow $False
Set-MailboxServer $env:COMPUTERNAME -DatabaseCopyAutoActivationPolicy Unrestricted
Set-ServerComponentState $env:COMPUTERNAME -Component HubTransport -State Active -Requester Maintenance
You can, like with the commands to place the server into maintenance mode copy these commands into a PS1 script file and execute them from within the Exchange Management Shell (which is what I have done in the screenshot below):
You are now ready to move onto art-MBXCAS-02 and then finally art-MBX-01 (remember to upgrade art-MBXCAS-02 before art-MBX-01). You also do not have to repeat the Active Directory preparation steps. Ensure that after the upgrade has completed and you have rebooted the server to take it out of maintenance mode.
Right, that is that certainly for this series. There will of course be further Exchange 2013 shenanigans that I write – but I think, as Gordon Ramsey would say . . . Done!.