First, Before we get stated, if you run into the "Failure configuring SearchFoundation through installconfig.ps1" error during your setup see The Error message and solution for that a little bit further down this page or click HERE. That error drove me nuts!
Second, If you get the "Exchange Server is in an inconsistent state" error Click HERE, this was an easier one to resolve, but if you are doing this in a virtual environment, have a failed install and revert to a previous snapshot you can run into this.
Install Exchange 2013 in a 2010 Environment
I had an existing Exchange 2010 environment on Windows Server 2008 R2. I wanted to migrate my my server to Windows 2012 Standard and Exchange 2013 so I decided to build a fresh server and move my mail boxes.
Ads disabled for Justin
Google AdSense 250x250
On a Domain Controller run the following from the Exchange 2013 install media in an elevated (run as Administrator) command prompt:
Setup.exe /p /IAcceptLicenseTerms (I think this is actually the only one that needs to be run but I ran all 3)
Setup.exe /pd /IAcceptLicenseTerms
Setup.exe /ps /IAcceptLicenseTerms
On the Existing 2010 Exchange Server apply Exchange Server 2010 SP3
Open Exchange Powershell Command line and make sure all Mailbox Databases have an Offline Address Book (OAB).
To view all databases and show the OAB use the following command:
Get-MailboxDatabase | Format-Table Name, Server, OfflineAddressBook -Auto
I did this to all at once with the following command:
Get-MailboxDatabase | Set-MailboxDatabase -OfflineAddressBook "Default Offline Address Book"
I installed the NEW server and configured it with the needed Prerequisites:
In Powershell as Administrator run the following to install the required Windows features:
Install-WindowsFeature Desktop-Experience, AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS -Restart
Microsoft Office 2010 filter Packs (http://www.microsoft.com/en-us/download/details.aspx?id=17062)
Microsoft Office 2010 filter packs Service Pack 2 ( http://www.microsoft.com/en-us/download/details.aspx?id=39668)
Unified Communications Managed API 3.0 Runtime (http://www.microsoft.com/en-us/download/details.aspx?id=20958)
Downloaded the CU2 version of Exchange 2013 (http://www.microsoft.com/en-us/download/details.aspx?id=39609) (This is actually a full download of exchange so you can do a clean install from it)
- From the location you downloaded and extracted the Server 2013 CU2 to, you will run Setup (NOTE: If you have User Access Control (UAC) enabled, you must right-click Setup.exe and select Run as administrator)
- Choose if you want it to check for updates or not
- Use the defaults for everything until you get to Server Role Selection, add roles you want.
- Installation Space and location: Choose where you want it to install Exchange. The default is "C:\Program Files\Microsoft\Exchange Server\V15" but I always put it on a separate drive so it does not compete with the OS for IOs
- Choose whether or not you want Malware Protection on your exchange server. If you have your own compatible Malware Protection for exchange disable this otherwise I recommend leaving it enabled.
- After readiness check, Click install, then Hurry up and wait.
While installing it I kept running into 2 errors and I wanted my server to be clean so I rebuilt it from scratch a couple of time and finally used common sence, did the initial build of the server then did a snapshot since I am building it in a Hyper-v environment.
The first error I received was:
Failure configuring SearchFoundation through installconfig.ps1
The following error was generated when "$error.Clear();
if ($RoleProductPlatform -eq "amd64")
$fastInstallConfigPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\Installer";
$command = Join-Path -Path $fastInstallConfigPath -ChildPath "InstallConfig.ps1";
$dataFolderPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\HostController\Data";
# the BasePort value MUST be kept in sync with dev\Search\src\OperatorSchema\SearchConfig.cs
&$command -action i -baseport 3800 -dataFolder $dataFolderPath -silent;
$errorMsg = "Failure configuring SearchFoundation through installconfig.ps1 - " + $_.Exception.Message;
Write-ExchangeSetupLog -Error $errorMsg;
# Clean up the failed configuration attempt.
This took a lot of work to figure out but finally buried in the searches I Found Microsoft KB2889663 (http://support.microsoft.com/kb/2889663). It was a white space at the end of the PSModulePath System Variable Name
1. opened up system properties.
2. Clicked Advance System Properties to bring up the full System Properties dialog
3. Clicked Environmental Variables
3. Scrolled sown the System Variables until I found PSModulePath. I had 2 of them, and I selected the bottom one and clickedd Edit (repeat this step for all if you have more than 1 to be safe) and remove the white space after PSModulePath.
Run Setup again as normal.
Huston We have Lift off!!!! Elvis has left the Building!
Exchange Server is in an inconsistent state is the second Error I recieved:
I got the error after one of my installs and after reverting the server to a clean state I still got The same error. Finally I edited ADSI on a domain controller with ADSIEdit.msc
I right Clicked in the root of the tree in the left hand pane (ADSI Edit) and Selected connect to...
Then I Expanded Configuration down to CN=Configuration,DC=DOMAINAME,DC=COM-->CN=Services-->CM=Microsoft Exchange-->CN=<Your EXCHANGE Group Name>-->CN=Exchange Administrative Groups-->CN=Servers
In the Left Pane Select "CN=Servers" and in the Right Pane Delete the server that had a Failed install on it.