Since Exchange 2007 was released and carrying on with Exchange 2010 part of the installation process is running setup commands /pl, /p, /ps, and /pd (more information here). Even during service pack upgrades some of the setup commands are needed. During each setup command an ExBPA pre-check is ran before making any changes to the infrastructure to ensure the environment is ready for the new version of Exchange. A common problem that I have noticed over the years is that when pre-check fail, for some reason or another, the administrators scramble to determine what is causing the failure. Since most of the time these commands are run after hours, now the administrator has to troubleshot this problem before the end of the maintenance window or face the wrath of management to explain why the environment wasn’t upgraded. Well wouldn’t it be nice just to run the ExBPA pre-check before scheduling the upgrade process? Well here are the steps how to.

So first things first, let’s take a look at the setup logs from an Exchange server that has been upgraded to Exchange 2007 SP3 and the steps the setup process used to determine if the infrastructure was prepared for Exchange 2007 SP3.

1. Navigate to C:Exchagne Setup LogsPreReqs and find the latest XML file (These files are very usage for troubleshooting Exchange setup problems are well).

exbpa_data_xml

2. If I open the file using internet explorer I would see that ExBPA used the parameters Mailbox, PrecheckUpgrade, and Prereqs

mailbox_precheckupgrade

3. The other important part of this output is the master input file, which is the XML filed that was used by ExBPA

ex_bpa_master_input_file

4. I can validate these XML files by navigating to the setup foldersetupserverrolescommonen. The master input file is the exbpa.config.xml file

ex_bpa_config_xml

Exchange 2010 pretty much works the same as Exchange 2007. Below is information on a server that is running Exchange 2010 SP1

1. Navigate to C:ExchangeSetupLogsPreRegs and find the latest XML file. You might see on the Exchange 2010 server a couple XML file. In my case, each XML file contained a different subset of parameter that ExBPA ran during the prereq check.

ex_bpa

5. If I open the file using internet explorer I would see that ExBPA used the parameters ClientAccess, Bridgehead, PrecheckInstall, and Prereqs

2.

clientaccess_precheckinstall_prereqs

bridgehead_precheckinstall_prereqs

3. I can validate the master XML files by navigating to the setup foldersetupserverrolescommon. Again the mater file is exbpa.config.xml

master_xml_validation

Now that I know the location of the files lets walk through how to run the pre-checks from an Exchange server.

1. Copy the upgrade folder to an Exchange server (For example if you are upgrading to Exchange 2007 SP3 copy the SP3 installation folder to one of your Exchange servers)

exchange_2007_sp3

2. Open up PowerShell and navigate to <Location of the SP3 folder>Setupserverrolescommon (we navigate to this location because we are coming to run the command line version of ExBPA)

cas_server_roles

3. Run this command from PowerShell:

exbpacmd –cfg “<location of the SP3 folder>setupserverrolescommonenexbpa.config.xml” –r PrecheckInstall  –dat c:

 

server_rolls_exbpacmd

(Now you can run any of the XML files that you deem necessary, here are a couple more examples

– [PS] D:sp3setupserverrolescommon>exbpacmd -cfg “D:sp3setupserverrolescommonenexbpa.config.xml” -r global -dat C:

– [PS] D:sp3setupserverrolescommon>exbpacmd -cfg “D:sp3setupserverrolescommonenexbpa.config.xml” -r Prereqs -dat C:)

Note: in large environments these commands can take a long time to run

4. The export file will be created on the c:

ex_bpa_export

5. Once you have the export file can you can open the file from an ExBPA console or using Internet Explorer.

IE:

ex_bpa_xml

ExBPA:

These are common errors and will not prevent you from upgrading to the next Service Pack

common_errors

Exchange 2010 is pretty much the same as Exchange 2007. In this example we are going to check to see if an Exchange 2007 environment is ready for Exchange 2010 SP1.

6. Copy the upgrade file to an Exchange server

exchange_upgrade_file

7. Open up PowerShell and navigate to <Location of the SP1 folder>Setupserverrolescommon (we navigate to this location because we are coming to run the command line version of ExBPA)

8. Run this command from PowerShell:

exbpacmd –cfg “<location of the SP1 folder>essetupserverrolescommonenexbpa.config.xml” –r PrecheckInstall  –dat c:

 

ex_bpa_powershell

(Now you can run any of the XML files that you deem necessary, here are a couple more examples

– [PS] D:essp1setupserverrolescommon>exbpacmd -cfg “D:sp1essetupserverrolescommonenexbpa.config.xml” -r global -dat C:

– [PS] D:sp1essetupserverrolescommon>exbpacmd -cfg “D:sp1essetupserverrolescommonenexbpa.config.xml” -r Prereqs -dat C:)

Note: in large environments these commands can take a long time to run

9. The export file will be created on the c:. As you can tell there is a big size difference between the 2007 output = 6MB and the 2010 Output= 2KB

export_bpa

10. Once you have the export file can you can open the file from an ExBPA console or using Internet Explorer.

IE:

exbpa_console

exbpa_console_1

ExBPA:

There is no error reported

no_errors