Deployment of an Exchange Server 2013 server goes through three main stages.

  1. Preparing Active Directory (if you are installing Exchange Server 2013 for the first time)
  2. Installing the Exchange Server 2013 pre-requisites on the server
  3. Running Exchange Server 2013 setup

Preparing Active Directory for Exchange Server 2013

When you are installing Exchange Server 2013 for the first time the Active Directory needs to be prepared.

There are a series of requirements for Active Directory preparation to be successful:

  • Schema master running Windows Server 2003 with SP2, or a later version of Windows Server
  • At least one Global catalog server per site that Exchange will be installed in that is running Windows Server 2003 SP2 or later
  • At least one Domain controller per site that Exchange will be installed in that is running Windows Server 2003 SP2 or later
  • Forest functional mode of Windows Server 2003 or higher
  • An account with Schema Admins, Domain Admins, and Enterprise Admins permissions to run Exchange setup

Although Active Directory preparation can occur as part of the installation of the first Exchange Server 2013 server, you can also run the Active Directory preparation as a separate task beforehand on a 64-bit server running Windows Server 2008 or higher.

Because the Active Directory preparation requires the RSAT-ADDS tools I am running it on the domain controller in my test lab.

Alternatively, you can install the tools on a member server to run Exchange 2013 Active Directory preparation.

For Windows Server 2008 R2 (SP1 or later), in PowerShell run:

Import-Module ServerManager

Add-WindowsFeature RSAT-ADDS

For Windows Server 2012, in PowerShell run:

Install-WindowsFeature RSAT-ADDS

If you are installing Exchange Server in the AD forest for the first time run the following Exchange 2013 setup command to prepare Active Directory:

setup /PrepareAD /OrganizationName:"your organization name" /IAcceptExchangeServerLicenseTerms

Note: if your organization name contains spaces then it must be enclosed in quotes as shown above.

If an Exchange organization already exists you can omit the /OrganizationName parameter.

setup /PrepareAD /IAcceptExchangeServerLicenseTerms

For other Active Directory preparation scenarios, such as multiple forests or multiple domains, refer to this article on TechNet.

Installing the Exchange Server 2013 Pre-Requisites

Exchange Server 2013 can be installed on either Windows Server 2008 R2 (SP1 or later) or Windows Server 2012. Depending on the server roles you are installing the pre-requisites vary.

Installing Exchange Server 2013 Using the Setup Wizard

After installing the pre-requisites a restart of the server may be required. If you proceed without restarting then setup may be unable to proceed when it detects the pending restart.

From the location where you have stored your Exchange 2013 files run Setup.exe.

The first dialog gives you the opportunity to check for updates to the setup files before you proceed.

How to Install Exchange Server 2013
Check for updates to Exchange 2013 setup files

After the setup files have updated click Next to continue.

Click Next to continue past the Introduction message.

How to Install Exchange Server 2013
Exchange 2013 setup introduction

Accept the license agreement and click Next to continue.

How to Install Exchange Server 2013
Exchange 2013 license agreement

Choose whether or not to enable Error Reporting and click Next to continue.

How to Install Exchange Server 2013
Configure Exchange 2013 error reporting

After a check that all the pre-requisites are installed the setup wizard will move on to the next step automatically (if the check was successful).

Now we can choose the server roles to install. If this is the first server you’re installing Microsoft recommends you install the Mailbox server role first (this can be either a Mailbox-only server or a combined Mailbox/Client Access server).

How to Install Exchange Server 2013
Choose the Exchange 2013 server roles to install

Verify that you have enough disk space for the installation, or choose a path that does have enough disk space, and click Nextto continue.

How to Install Exchange Server 2013
Choose the location to install Exchange 2013

If there is no existing Exchange organization in Active Directory, and you haven’t already prepared Active Directory for Exchange, you will be prompted to enter an Exchange organization name.

When installing the Mailbox server role you are given the option to disable malware protection. If you disable it now you can enable it again later.

How to Install Exchange Server 2013
Configure anti-malware protection for the Mailbox server

Some readiness checks are performed. If this is the not the first server you’re installing and there is no Send Connector defined for outbound email then you may see a warning, but you can still proceed with the server installation.

Setup can’t detect a Send connector with an address space of ‘*’. Mail flow to the Internet may not work properly.

How to Install Exchange Server 2013
Exchange 2013 setup pre-requisite warning

When you are ready to proceed you can click Install to begin.

How to Install Exchange Server 2013
Begin the installation of Exchange 2013

The install is a fairly lengthy process, so you may want to go and do something else while you wait. When setup has finished click Finish.

How to Install Exchange Server 2013
Exchange 2013 setup is finished

Configuring Exchange Server 2013

After installing Exchange Server 2013 there are a number of configuration tasks that you can perform next:

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for


  1. Chris

    I have exchange server installed on same machine with domain
    controller . What if demote controller to a member server is there any impact?

  2. Salah Al-Attar

    I try to install exchange 2013 CU15 as just mailbox role with existing organization , I receive an error on step#10 of 12 (Mailbox Role: Mail Box Service) as the following error:

  3. D Huff


    I’ve been away from the exchange environment for awhile. I was using a VPN to remote into my exchange server and lost the connection during the installation of CU22. It should restart at the point of interruption correct? Just looking for a sanity check. Could not log into the server again for quite some time. Logged back in checked Exchange Setup logs and it does not show that it finished. Thanks for any helpful reassurance.

  4. Navin

    Hello Paul,

    I have an Exchange 2010 server in the environment. I want to add a Exchange 2013 server, however when I try, it asks me for the OrganizationName. I beleive this is only required when installing the first exchange server in the environment. Not sure what am I missing. Any help would be great.


  5. Mohammed Ashraf Azam

    Hi Paul,
    First of all i would like to thank you for very useful documents which help me a lot.

    In our environment we have one VM which host both DC (Win2012) and Exchange server (2010). i built a new VM for DC (Win2012) and another new VM for Exchange server (2013). My existing domain name was XXXX.local and i create new domain with Is there any document which will help me to setup my new exchange server 2013 by seeing existing configuration of exchange server 2010. I need step by step document to configure exchange server 2013 for sending and receiving emails external and through web mail.


  6. MeIn

    Hi Paul..
    while installing Exchange 2013 on 2012 r2, i faced this error:
    One or more servers in the existing organization are running Exchange 2000 server or Exchange server 2003. Installation cann’t proceed until all Exchange 2000 or Exchange 2003 servers are removed.

    In my organization, there is no any exchange server yet.
    Also for your information: We have separate Domain Controller server, so how to install exchange 2013 on different new server computer (2012 r2)?
    Please help me.

    1. Avatar photo
      Paul Cunningham

      Seems likely that someone in the past has improperly removed an older version of Exchange, and left the server objects behind. You can open ADSIEdit and connect to the Configuration partition to look for them.

  7. Jawad Ehsani

    Hello Paul Cunningham.
    Thank you so much for your Site and your Information.
    Today I have tried Upgrade Exchange server SP1 (CU 4) to CU 14. I got this Error.and I tried to find but does it does not work for me.

    I have tried these sites: (Other sites same suggest)

    The following error was generated when “$error.Clear();
    # O15# 2844081 – Create PartnerApplication “Exchange Online” in DC and On-Premise
    $exch = [Microsoft.Exchange.Data.Directory.SystemConfiguration.WellknownPartnerApplicationIdentifiers]::Exchange;
    $exchApp = Get-PartnerApplication $exch -ErrorAction SilentlyContinue -DomainController $RoleDomainController | Where { $_.UseAuthServer };
    if ($exchApp -eq $null)
    $exchAppName = “Exchange Online”;
    $exchApp = New-PartnerApplication -Name $exchAppName -ApplicationIdentifier $exch -Enabled $RoleIsDatacenter -AcceptSecurityIdentifierInformation $false -DomainController $RoleDomainController;

    # Create application account for Exchange
    $appAccountName = $exchApp.Name + “-ApplicationAccount”;
    $appAccount = Get-LinkedUser -Identity $appAccountName -ErrorAction SilentlyContinue -DomainController $RoleDomainController;
    if ($appAccount -eq $null)
    $appAccountUpn = $appAccountName.Replace(” “, “_”) + “@” + $RoleFullyQualifiedDomainName;
    $appAccount = New-LinkedUser -Name $appAccountName -UserPrincipalName $appAccountUpn -DomainController $RoleDomainController;
    Set-PartnerApplication -Identity $exchApp.Identity -LinkedAccount $appAccount.Identity -DomainController $RoleDomainController;

    foreach ($roleName in (“UserApplication”, “ArchiveApplication”, “LegalHoldApplication”, “Mailbox Search”, “TeamMailboxLifecycleApplication”, “MailboxSearchApplication”))
    $roleIdentity = Get-ManagementRole $roleName -DomainController $RoleDomainController;
    $roleAssignment = Get-ManagementRoleAssignment -Role $roleIdentity.Identity -RoleAssignee $appAccount.Identity -DomainController $RoleDomainController;
    if ($roleAssignment -eq $null)
    New-ManagementRoleAssignment -Role $roleName -User $appAccount.Identity -DomainController $RoleDomainController;
    ” was run: “Microsoft.Exchange.Data.Directory.ADObjectAlreadyExistsException: Active Directory operation failed on Test-DC-1.TEST.COM. The object ‘CN=Exchange Online-ApplicationAccount,CN=Users,DC=TEST,DC=COM’ already exists. —> System.DirectoryServices.Protocols.DirectoryOperationException: The object exists.
    at System.DirectoryServices.Protocols.LdapConnection.ConstructResponse(Int32 messageId, LdapOperation operation, ResultAll resultType, TimeSpan requestTimeOut, Boolean exceptionOnTimeOut)
    at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
    at Microsoft.Exchange.Data.Directory.PooledLdapConnection.SendRequest(DirectoryRequest request, LdapOperation ldapOperation, Nullable`1 clientSideSearchTimeout, IActivityScope activityScope, String callerInfo)
    at Microsoft.Exchange.Data.Directory.ADDataSession.ExecuteModificationRequest(ADObject entry, DirectoryRequest request, ADObjectId originalId, Boolean emptyObjectSessionOnException, Boolean isSync)
    — End of inner exception stack trace —
    at Microsoft.Exchange.Data.Directory.ADDataSession.AnalyzeDirectoryError(PooledLdapConnection connection, DirectoryRequest request, DirectoryException de, Int32 totalRetries, Int32 retriesOnServer)
    at Microsoft.Exchange.Data.Directory.ADDataSession.ExecuteModificationRequest(ADObject entry, DirectoryRequest request, ADObjectId originalId, Boolean emptyObjectSessionOnException, Boolean isSync)
    at Microsoft.Exchange.Data.Directory.ADDataSession.ExecuteModificationRequest(ADObject entry, DirectoryRequest request, ADObjectId originalId, Boolean emptyObjectSessionOnException)
    at Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave, IEnumerable`1 properties, Boolean bypassValidation)
    at Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalProcessRecord()
    at Microsoft.Exchange.Configuration.Tasks.NewTaskBase`1.InternalProcessRecord()
    at Microsoft.Exchange.Configuration.Tasks.NewADTaskBase`1.InternalProcessRecord()
    at Microsoft.Exchange.Configuration.Tasks.Task.b__b()
    at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)”.

  8. Dan Spahn

    I have a sort-of-coexistence environment running Exchange 2010 and 2013. Everything goes in to 2013, and the EWS, OA, Autodiscover and mailflow including IMAP and POP are all configured and working properly. We are stuck on OWA, and that has had our migration stopped for weeks. Opening 2013 ECP works fine. Opening a mailbox on the 2013 server works fine. opening a mailbox located in 2010 give a 500 error that returns a message in the HTTPProxy log: “Unable to find a suitable back end service”. We have tried every combination of internalurl, externalurl, basic, FBA, and Windows auth combinations. I have tried setting these from the shell, from the ECP, and from IIS. I have tried resetting the VD’s, and have even tried adding a non-internet-facing CAS, to no avail. I have tried resetting app pools, iisresets, reboots, and still no change. The 500 error comes back quickly, with a page, so I know it is coming from the 2013 server- that’s where the log shows the 500 error, and the 2010 server resolves to, which does not match that address- so I know it’s coming from 2013. Certificates appear to be correct, we don’t use wildcard certs, and I added to the SAN list and rekeyed our public certificate- should have no bearing on this, but I’m running out of options. Any idea what else to try? If I can get this last piece to coexist, I can finish the migration and go to full 2013. Thanks for the help!

  9. SJ04

    Hi There,

    I have followed your Migration book since beginging and there was no issue so far,. i have recently installed the New Exchange 2013 in running exchange 2010 Enviroment but i am not being able to Login in the exchange admin center.

    Please help

  10. jorj

    Thank you for you’r solution.

    I have 3 DC with win server 2003 sp2.
    already, we have exchange 2010, that server crashed.
    know we install win server 2012 R2.
    i want to install exchange 2013 .
    user that i logged in server with it is Administrator of domain that is member of all nesseary group.
    when run this command :

    Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

    i get this error :

    Prerequisite Analysis FAILED
    The Active Directory schema isn’t up-to-date, and this user account isn’t a
    member of the ‘Schema Admins’ and/or ‘Enterprise Admins’ groups.
    For more information, visit:

    Setup encountered a problem while validating the state of Active Directory:
    Couldn’t find the Enterprise Organization container. See the Exchange setup lo
    g for more information on this error.
    For more information, visit:

    The forest functional level of the current Active Directory forest is not W
    indows Server 2003 native or later. To install Exchange Server 2013, the forest
    functional level must be at least Windows Server 2003 native.
    For more information, visit:
    )/ms.exch.setupreadiness.ForestLevelNotWin2003Native .aspx

    Either Active Directory doesn’t exist, or it can’t be contacted.
    For more information, visit:

    The Exchange Server setup operation didn’t complete. More details can be found
    in ExchangeSetup.log located in the :ExchangeSetupLogs folder.

    what i do ?

    1. jorj


      in pervioes day i ran this command :

      Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

      and its complete with no error … bue without uninstall anything i removed windows then setup win 2012 again.

      know i recive that error that said

  11. Nick

    Hi, Paul. I installed exchange 2013 for test, in my lab. Everything works fine, except outlook 2013 and 2016 on windows 10. I receiving error outlook must be online, when I trying create profile and connect… But if on windows 10 installed outlook 2007, or 2010 everything is ok and on windows 7 works all: outlook 2007, 2010, 2013, 2016. What’s wrong with my exchange configuration? I tried updates windows 10 and outlook, but still same. Please help me.

      1. Nick

        Hi, namespaces yes, but certificate no yet. Thank you very much for answer, I’ll try certificate now.

  12. Abdullah

    During of installation of pre-requests mine is not working the software that i installing ( Filterpack 64 ) it give me a massage

    1. Avatar photo
      Paul Cunningham

      The filter pack actually isn’t required any more, you can leave it out.

  13. Ranga

    Setup /prepareAD not required to run manually. Exchange setup wizard automatically detects it’s not done before and allows you to setup through wizard including providing Organization name.

  14. Peter Fallon

    Hi Paul,

    I have a quick question about the install process. I attached a 3 terabyte ISCSI LUN to be used for the exchange 2013 database and I’m wondering whether I should install exchange on it or install exchange on the C: drive and then use the LUN (which is the D:) drive for the database.

    I’m thinking that it will make more sense to install exchange on the C: and use D: simply for the database so they won’t be competing for resources but I didn’t know if there was any reason to keep them both on the same drive.


    1. Avatar photo
      Paul Cunningham

      Sounds like you’re installing a single server. I would install on C: and place the database and transaction logs on *separate* dedicated volumes.

      1. Peter Fallon

        Thanks Paul.

        Does it make any difference as far as you know whether the database is placed on a physical drive within the server or on an ISCSI LUN?

  15. Jeremy

    Hi Paul,

    Hoping I can get some quick advice from you as I feel I’m missing something obvious.

    I’m trying to add an additional mailbox and client access server for our DR site. I’ve recently added a new site and DC in our AD with an associated subnet.

    I’ve now installed Exchange 2013 mailbox server role on a member server with an IP address residing in the new AD site.

    It didn’t ask me at any point of the install if I was joining an existing Exchange organization. Install completed, and I can run get-exchangeserver from the new server and I see all 5 of our servers listed (2 mailbox servers and 2 client access servers in main AD site and the new one in the DR site)

    However, If I run get-exchangeserver on any server in our main AD site, they are not seeing the new Exchange server. the new server is not a member of the “Exchange Servers” AD group, and it isn’t showing up in the list of Exchange servers in the ECP. Is there something I’m missing here to properly join this server to the Exchange org?

    Thanks Paul!

    1. Jeremy

      HI Paul,

      I think I was just being impatient…looks like it’s all working now. Appeared to maybe be an AD sync issue.

  16. VENKAT

    Basic question.
    I plan to have 3 server DAG setup.
    Prepare Schema, Prepare AD and PrepareDomain –> how many times are supposed to run.
    Essentially I am going to install 3 exchange servers on 3 Windows 2012 R2 machines.
    Is the schema preparation , active directory preparation and domain preparation required for all the 3 exchange servers or is it enough to be run the very first time.


  17. Rob H.

    Not sure if MS changed something with the command format but:
    setup /PrepareAD /OrganizationName: “your organization name” /IAcceptExchangeServerLicenseTerm

    This will not work if you have a space between the : and the first ” for the /OrganizationalName parameter. Discovered this today running the command on a Windows 2012 R2 Server installation. Hoep this helps anyone else that stumbles on an error running this command.

  18. Max

    Hi Paul!

    I have migrated Exchange from 2010 to 2013. New EAC connection via browser is so disappointing. Is there a way to change session time log in for exchange admin (maybe for group Oraganization managment only)? (seems it have stantard public timeout fo owa). In Exchange 2010 EMC was nice…

  19. Dee

    Hi Paul,
    Need your expert advice. I have an exch 2013 set up in my organization. We need to demote the only DC /GC in site A where i have my exchange server. I Will still have 2 DC/GC’s in site B.i know this is not recommended but would it work at all ?

  20. LuJa

    Hi Thanks!
    This guide was an eye-opener for me, as I normally administer linux boxes exept one requires me
    to use and administer Windows.
    W/O your guide I would not have succeded to install Exchange 2013 SP1 on 2012 R2 as
    M$ claims it to be incompatible in the “prerequisites check”.
    The M$-Stuff still stinks 😉


    1. Avatar photo
      Paul Cunningham

      Windows Server 2012 R2 is supported for Exchange 2013 SP1 or later.

      Not sure why you are installing SP1 though. The latest build is CU9 and that is the one that should be used for new server deployments.

  21. Tomer

    Hi Paul,
    i have installed exchange 2013 on a new server 2012R2 in an existing domain environment with 2 sites, one with exchange 2007 and one with exchange 2010, the goal is to combine all three exchange into the new 2013 exchange server and dismiss the other tow. now here is the problem, i followed all the instruction and after finished the installation i cant get into the /ecp on the new server because when i try to log in with the administrator credential it redirects me to the exchange 2010 where the administrator mailbox is. i cant move on to next step and configure the new server.
    any ideas ?

  22. Michael

    Hi Paul,

    I am getting the below error in the readiness check in exchange 2013 CU6:
    The task failed because a Win32 error occurred: “Access is denied”. Could not open the service “MSDTC”

    Can you advise what is causing this issue?



    1. Gustavo Pereira

      Hi Michael, I have the same issue than you, have you found the solution?

  23. Kush

    Hi Paul,

    Our Exchange 2013 setup will consist of 2 DAG’s with 8 servers split across 2 sites (4 servers in each site) with a FSW in a third site in a different continent.

    My question is, is it best practice to configure all servers with the CAS and MAILBOX role or would it be better if I separate out the CAS role.

    The plan going forward is to also configure a load balancer and have 2 CAS servers from each site configured on the load balancer utilising one name space. Would this config work? Do you see any issues?

    Your expert help would be greatly appreciated.



    1. Avatar photo
      Paul Cunningham

      Multi-role servers are the recommended practice.

      The CAS (all of them) in each site should be configured with the same namespaces and included in the same load balancer config.

  24. wagdi

    Dear Paul
    This is my scenario:-
    * I have a local domain called (Unregistered) .and have public domain called (registered domain)
    * I want to add may server name to the SAN certificate ( but godaddy said that they can not do that because is Unregistered domain.
    my question is :
    Is it important that the server name to be included in certificate ? and does this affect the connection between Microsoft outlook and the exchange server?

  25. Amr Ragab

    i have problem
    now i have domain
    my exchange can not send external mail

    1. Amr Ragab

      i created ptr record and mx record

  26. Hein Traag

    I cannot edit my previous post. We found the problem. We had two crashed servers. We build a new set of servers. And from that new set of servers the active server is trying to connect to the crashed passive server during a ECP migration.

    So what we really need to know is where can we edit the settings that tell the ECP which two servers are in use?

    1. Avatar photo
      Paul Cunningham

      So you’ve got two servers visible in the Exchange tools but the servers don’t actually exist? Do a recovery install of those servers and cleanly uninstall them.

  27. Hein Traag

    Badly need some help here. Before he left the company my ex-collegae did a fubar on our passive 2013 exchange server. Now we are able to create database and even manually (commandline) migrate mailboxes from 2010 to 2013 but whenever we try to single or batch migrate users using ECP we get this message:

    Cannot open mailbox /o=CompanyName/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Server s/cn=EX13-MS2/cn=Microsoft System Attendant

    We tried to remedy this by taking apart the DAG we had build, cleanly uninstall exchange on the EX13-MS2 server and then do a clean install again. Unfortunately this did not work.

    The following command was tried on the EX13-MS2:
    Enable-Mailbox -Arbitration -Identity “Migration.8f3e7716-2011-43e4-96b1-aba62d229136”

    Which gives us a warning:
    “This task does not support recipients of this type. The specified recipient e4-96b1-aba62d229136 is of type UserMailbox. Please make sure that this recipient matches the required recipient type f or this task.”

    Even though the first command did not work we did tried the following command as wel:
    Set-Mailbox “Migration.8f3e7716-2011-43e4-96b1-aba62d229136” -Arbitration –Management:$true

    Which did not give an error but did also not resolve our situation.

    So the question is.. how do we get rid of this error?

  28. bigb

    setup.exe /PAD

  29. Kush

    Hi Paul,

    As always great article. I have managed to install Exchange 2013 in coexistence with Exchange 2010 in a test Lab. When I launch the EAC and I login I receive an error

    “500 Unexpected Error 🙁 An error occurred and your request couldn’t be completed. Please try again.”

    Any ideas what I can look at to resolve this?

      1. Kush

        Hi Paul,

        the URL already had ?ExchClientVer=15 appended to it and I am still seeing the same error

        I tried your suggestion of creating a new user account. I permissioned it as per the article, however I am still left with the same issue?

        Having checked the Event Viewer I can see the following event being logged

        Log Name: Application
        Source: MSExchange Control Panel
        Date: 02/10/2014 12:18:04
        Event ID: 4
        Task Category: General
        Level: Error
        Keywords: Classic
        User: N/A
        Current user: ‘’
        Request for URL ‘’ failed with the following error:
        System.Web.HttpUnhandledException (0x80004005): Exception of type ‘System.Web.HttpUnhandledException’ was thrown. —> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> Microsoft.Exchange.Diagnostics.SetupVersionInformationCorruptException: Unable to determine the installed file version from the registry key ‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellEngine’.
        at Microsoft.Exchange.Diagnostics.ExchangeSetupContext.get_PSHostPath()
        at Microsoft.Exchange.Configuration.Authorization.InitialSessionStateBuilder.InitializeWellKnownSnapinsIfNeeded(ExchangeRunspaceConfigurationSettings settings, Boolean isPowerShellWebServiceSession)
        at Microsoft.Exchange.Configuration.Authorization.InitialSessionStateBuilder.Build(List`1 allCmdlets, List`1 allScripts, ExchangeRunspaceConfiguration runspaceConfig)
        at Microsoft.Exchange.Configuration.Authorization.ExchangeRunspaceConfiguration.CreateInitialSessionState()
        at Microsoft.PowerShell.HostingTools.RunspaceFactory.CreateRunspace(PSHost host)
        at Microsoft.Exchange.Management.ControlPanel.EcpRunspaceFactory.CreateRunspace(PSHost host)
        at Microsoft.PowerShell.HostingTools.RunspaceFactory.CreateRunspace()
        at Microsoft.PowerShell.HostingTools.RunspaceMediator.AcquireRunspace()
        at Microsoft.PowerShell.HostingTools.RunspaceProxy.SetVariable(String name, Object value)
        at Microsoft.Exchange.Management.ControlPanel.PSCommandExtension.InvokeCore[O](PSCommand psCommand, RunspaceMediator runspaceMediator, IEnumerable pipelineInput, WebServiceParameters parameters, CmdletActivity activity, Boolean isGetListAsync)
        at Microsoft.Exchange.Management.DDIService.CmdletActivity.ExecuteCmdlet(IEnumerable pipelineInput, RunResult runResult, PowerShellResults`1& result, Boolean isGetListAsync)
        at Microsoft.Exchange.Management.DDIService.GetListCmdlet.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
        at Microsoft.Exchange.Management.DDIService.Workflow.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
        at Microsoft.Exchange.Management.DDIService.WSListDataHandler.ExecuteCore(Workflow workflow)
        at Microsoft.Exchange.Management.DDIService.WSDataHandler.Execute()
        at Microsoft.Exchange.Management.DDIService.DDIServiceHelper.GetListCommon(DDIParameters filter, SortOptions sort, Boolean forGetProgress)
        — End of inner exception stack trace —
        at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
        at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
        at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
        at Microsoft.Exchange.Management.ControlPanel.WebServiceReference.GetList(DDIParameters filter, SortOptions sort)
        at Microsoft.Exchange.Management.ControlPanel.OrganizationCache.LoadTargetDeliveryDomain(AddValueHandler addValue, LogErrorHandler logError)
        at Microsoft.Exchange.Management.ControlPanel.OrganizationCache.TryGetValue[T](String key, T& value)
        at Microsoft.Exchange.Management.ControlPanel._Default.RenderMetroTopNav()
        at ASP.default_aspx.__RendermainForm(HtmlTextWriter __w, Control parameterContainer)
        at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
        at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
        at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
        at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,

        Would you have any other suggestions?

        1. Kush

          Hi Paul,

          I managed to resolve this issue

          I noticed I was also getting big error when opening up EMS. The error was complaining about unable to determine the installed file version from the registry key at

          location “‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1”

          I started regedit on the server and went to the location “‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1” but I couldn’t find “PowerShellEngine” Key at the location, it was missing.

          I exported PowerShellEngine Key from a windows 2008 R2 server and Imported it on the Windows 2012 R2 Server.

          This resolved both EMS and EAC issue

          Hope this helps someone else

  30. bigb

    I have 7 domains in a forest. Tree Root Trust. Currently running exchange 2007 on server 2003, single server, migrating to exchange 2013 on server 2012R2, also single server, all DCs are now new 2012 DC, FSMOs all moved. Exchange is installed in the top level domain. I was able to move user mailboxes in the top level domain-no issues, when I try to move users from any of the other domains, I get errors-“homemdb not writable”, inheritable permissions is on, but I see lots of differences in advanced permissions between a user in the main domain and users in any other. With one test user in a trusted domain, I added exchange trusted subsystem, and exchange windows permissions, still got a failure for the batch, but the mailbox did in fact move, tried the same thing with another test user, batch says it succeeded, but user still is on old server, nothing was actually done by the batch move, so I tried again in the shell, but I get an error about not finding the object on the dc, but the user is not on that dc, he is in a trusted domain, how do i get exchange to “look at” other domains in the forest? Also, back in the day when i first built this mess, i had to run “ /preparedomains:alldomains” to get OWA working for anyone not in the main domain, this, to a degree reminds me of that. I am pretty sure I have some type of AD permission issue going on, can you help?

  31. lukman

    Hello paul,

    Have setup my exchange server 2013 correctly and i can send and receive mail, but my issue is that i cannot view my website internally because my internal domain name and external domain name are the same e.g “”. i have also created an ‘A’ record on the internal dns to point to public IP of the external website but still cannot access my website internally but can access it both with public IP and name from external network.

    1. Avatar photo
      Paul Cunningham

      Have you added an A record for “www” to your internal DNS to point to your website’s public IP address? If not, try that.

      In your case “” is going to already resolve to your domain controllers, so you would not be able to also use that to access the external website.

  32. Michael F

    Paul, could you please tell me whether Autodiscover is able to resolve through an edge server or whether it is intended to come straight into the LAN to resolve on the CAS. Very confusing subject for which there seems little guidance.
    Your comments will be very much appreciated.
    Thank you.

  33. Suliasi W


    I have 5 different domains, and I am using 1 exchange 2010 has Edge Transport, 1 Exchange 2013 has an Internal email Server. How can I can configure it

  34. Numto

    Hello Dears
    I’m facing an issue since two days while installing Exch 2013 SP1 on a new server running on Win 2012 R2.
    I currently have two exchange servers running correctly since couple of months ; one Ex 2010 SP3 on Win 2008 R2 and another Exch 2013 (without SP1) on Win 2012 (without R2)
    I’ve prepared all Exch 2013 prerequisites except the ADPREP as I already have one Exch 2013 server in my organization.
    Here is the error I’m getting while installing :
    The following error was generated when “$error.Clear();
    if ( ($server -eq $null) -and ($RoleIsDatacenter -ne $true) )
    Update-RmsSharedIdentity -ServerName $RoleNetBIOSName
    ” was run: “Database is mandatory on UserMailbox.”.

    Here are what I’ve already checked :
    – No NIC teaming
    – No previous unsuccessful exchange installation
    – IPv6 is enabled in all Exch and DC servers (however IPv4 is used)
    – The used account is member of Schema, enterprise and domain admins

    Thank you in advance.

    1. Avatar photo
      Paul Cunningham

      A Google search for that error message turns up a lot of results. I think you’ve got some reading to do.

    1. Avatar photo
      Paul Cunningham

      All Exchange 2007 servers need to be upgraded to the minimum version. If you have any Edge Transport servers, after you upgrade them you need to recreate the Edge Subscription so AD gets updated with their new version number.

      1. Aliyu Garba

        have three (3) Exchange Servers in the organization two (2) are mailbox and cas servers and one (1) is Hub transport server.
        I recently try to uninstall the Hub TS am having issue doing that so i when to ADSI Edit to deleted only the server name there.

        All the Exchange Server 2007 i have upgrade them to SP3 CUL Rollup 10 and 13 already.

        Hello Sir Paul.
        I have only Two (2) exchange server 2007 now even if i when to ADSI EDIT only two servers name now i use to see when i run the command in exchange management shells get-exchange server. Still is 2 server name.

        Does that mean that HUB Transport server is Still Exists in the organization if so please how can i remove it ?.

        Or do i need to delete all the server name there before the Upgrade will coexist.

        Please i need your quick response i have spent almost four days on this issue.

  35. Jan De Smet

    Hello Paul,

    I am migrating an existing Exchange organization to office 365. First step in this migration is a migration to exchange 2013. At the moment we have 5 Exchange 2010 servers with all roles installed. We would like to setup 2 Exchange 2013 in the datacenter. In this datacenter we also have one exchange 2010 server.

    In the end, all mailboxes should be migrated to office 365. We need to migrate all mailboxes to exchange 2013 server first, and then to the cloud.

    Do you have any insights or feedback?

    many thanks in advance



    1. Avatar photo
      Paul Cunningham

      Hybrid and O365 aren’t really my speciality, but my understanding is that you don’t need Exchange 2013 to go Hybrid/O365, you can do it with just Exchange 2010. But I assume there are some advantages to going with an Exchange 2013 Hybrid instead.

      1. Jan De Smet


        Many thanks for you response. As we have 5 geographically different sites, we would first like to consolidate all mails in the datacenter. The Hybrid config of 2013 is slightly improved. (move requests)

        This 2013 server will remain in the organization

        My concern is that one exchange 2013 would be sufficient for all the mailboxes. Or would it be more interesting to install a second 2013 server as well.




  36. Denis Muendo

    Hello Paul,
    I am doing a migration of Exchange 2003 to 2013.what comes after the installation and creation of mailboxes and recipient policies.
    Best Regards,
    Denis Muendo.

  37. jack cristi

    Hi Sir Paul,

    I’d like to ask on how to fix the connection between outlook 2010 to exchange server 2013… I already configure it manually but still i cant connect to exchange…it shows that i’m unable to connect to exchange server.

    is there any way to reset all the settings for ms exchange server 2013?

    thank you sir paul,

    regards Jack Cristi

  38. Jackie

    I recieved this error on step 6 of 8 Mailbox Role: Mailbox Service
    The following error was generated when “$error.Clear();
    if (!$RoleIsDatacenter)
    $arbUsers = @(get-user -Filter {lastname -eq “MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c”} -IgnoreDefaultScope -ResultSize 1);
    if ($arbUsers.Length -ne 0)
    $mbxname = $arbUsers[0].name;
    $mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope -resultSize 1 );
    if ( $mbxs.length -eq 0)
    $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
    if ($dbs.Length -ne 0)
    enable-mailbox -Arbitration -identity $arbUsers[0] -database $dbs[0].Identity;
    ” was run: “The user’s Active Directory account must be logon-disabled for linked, shared, or resource mailbox.”.

  39. Shahan


    We are migrating from MDaemon to exchange 2013, Is there any possibility to do this?

  40. jack cristi

    Hi sir paul,

    1. So what I need to do is to grab a domain and register it.
    2. Install and Configure my server 2008 r2 and use the registered domain
    3. Install prerequisite for exchange
    4. Install exchange server 2013
    5. After this procedure… I will follow the instriction the one u send to me regarding MX record and firewall port set up though:
    6. I am able to.sens and.receive emails to another domain.
    8 finally… Thank you for helping me….my boss will kill me.i I can’t do this… Thanks you soo much…

  41. Jack Cristi

    Hi Sir Paul,
    I know this is basic and I am new with exchange server 2013 with operating system Windows server 2008 R2.

    I would like to ask why i can’t send emails from yahoo/gmail/hotmail and other accounts to Exchange server 2013. i already configure send connectors. Do i need to configure the default received connectors?

      1. jack lauren cristi

        Hi Sir Paul,

        Thank you for your response, i have a lot of questions to ask sir paul..

        1. Is there any possibility to received emails from Outside organizaton such as yahoomail, gmail, hotmail and any private organization etc. to exchange server 2013 without registering our domain?

        2. due to the unavailability of our selected domain… my problem is how do i change the domain of our server? will it affect the installed exchange 2013? what should i do first? uninstall exchange 2013 before i change the domain of our server?

        1. Avatar photo
          Paul Cunningham

          1) No.

          2) It doesn’t really matter what domain your Active Directory is using when it comes to getting mail flow working. Exchange can accept email for any domain that you own and that you configure it to accept. This is managed through the Accepted Domains for Exchange, as well as the Email Address Policies (to assign email address to mailboxes etc).

          So your server can be but your emails can be

          Quite normal actually.

  42. exrookie

    Need some help. I’m trying to install exchange 2013 on windows 2012. I did everything correctly in term of preparation that I can think of. To brief, I had windows 2012 and join to domain as member server. I install RSAT and the windows features that pertain to Client access + Mailbox, installed Runtime, Filter Pack, etc. Then I did the setup /prepareschema, prepareADwithout any issues. Last step was to run setup with elevated admin. However as it gets to Step 7 of 14 (transport step) it gave me this error. By the way this is a VM lab environment. This is the second time I ran into this very same issue. I thought I did something wrong the first time so I completely remove and rebuild the VM and start all over.

    The following error was generated when “$error.Clear();
    if ($RoleStartTransportService)
    start-SetupService -ServiceName MSExchangeTransport -MaxWaitTimeForRunningState 0:0:40
    ” was run: “Service ‘MSExchangeTransport’ failed to reach status ‘Running’ on this server.”.

    1. Avatar photo
      Paul Cunningham

      Most of my lab install failures have been due to low resources (eg not assigning enough memory to the VM)

  43. Lawrence

    After we did the step ‘setup /PrepareAD’ to extend the schema on domain controller using Windows Server 2003, now we are receiving the event id 1136 error (Active Directory failed to create an index for the following attribute.) for the attributes below


    Additional Data
    Error value:
    -1403 JET_errIndexDuplicate, Index is already defined.

    What we were trying to do is to migrate our Exchange 2007 on Windows Server 2008 to Exchange 2013 on Windows Server 2012.

    . what is the resolution for the event 1136? Or how do we stop these errors?
    . Can I still proceed with the Exchange 2013 installation?


    1. Avatar photo
      Paul Cunningham

      I haven’t seen that error before. My first thought is to double check that you meet all of the pre-reqs for Exchange 2013 in terms of DC/GC versions, service packs for existing Exchange, etc etc.

  44. kongkea

    Installing Exchange Server on a domain controller will elevate the privileges for Exchange Trusted Subsystem to domain administrators.
    Step 7:Mailbox role
    The following error was generated when “$error.Clear();
    $maxWait = New-TimeSpan -Minutes 8
    $timeout = Get-Date;
    $timeout = $timeout.Add($maxWait);
    $currTime = Get-Date;
    $successfullySetConfigDC = $false;

    while($currTime -le $timeout)
    $setSharedCDCErrors = @();
    Set-SharedConfigDC -DomainController $RoleDomainController -ErrorVariable setSharedCDCErrors -ErrorAction SilentlyContinue;
    $successfullySetConfigDC = ($setSharedCDCErrors.Count -eq 0);

    Write-ExchangeSetupLog -Info (“An error ocurred while setting shared config DC. Error: ” + $setSharedCDCErrors[0]);
    Write-ExchangeSetupLog -Info (“An exception ocurred while setting shared config DC. Exception: ” + $_.Exception.Message);

    Write-ExchangeSetupLog -Info (“Waiting 30 seconds before attempting again.”);
    Start-Sleep -Seconds 30;
    $currTime = Get-Date;

    if( -not $successfullySetConfigDC)
    Write-ExchangeSetupLog -Error “Unable to set shared config DC.”;
    ” was run: “Unable to set shared config DC.”.

      1. Steve

        For some people that isn’t a solution. For example, I work for a small non-profit. If we could buy a separate server for Exchange we would, but we can’t. So we have to install Exchange on our DC.
        We are getting the same error.

    1. Shahan

      This error is because you have IPV6 disabled on you network interface cards.We need to enable it again before starting the installation of Exchange 2013. To do so drop to the desktop in Server 2012. In the bottom right hand corner right click the little monitor and select Open Network and Sharing Center, then select Change Adapter Settings.Then select your network card by right clicking it and selecting properties.

      make sure as you can see below that IPV6 is selected and enabled, once done reboot the server and Exchange 2013 will install correctly.

    2. rahmatgul

      The following error was generated when “$error.Clear();
      $maxWait = New-TimeSpan -Minutes 8
      $timeout = Get-Date;
      $timeout = $timeout.Add($maxWait);
      $currTime = Get-Date;
      $successfullySetConfigDC = $false;

      while($currTime -le $timeout)
      $setSharedCDCErrors = @();
      Set-SharedConfigDC -DomainController $RoleDomainController -ErrorVariable setSharedCDCErrors -ErrorAction SilentlyContinue;
      $successfullySetConfigDC = ($setSharedCDCErrors.Count -eq 0);

      Write-ExchangeSetupLog -Info (“An error ocurred while setting shared config DC. Error: ” + $setSharedCDCErrors[0]);
      Write-ExchangeSetupLog -Info (“An exception ocurred while setting shared config DC. Exception: ” + $_.Exception.Message);

      Write-ExchangeSetupLog -Info (“Waiting 30 seconds before attempting again.”);
      Start-Sleep -Seconds 30;
      $currTime = Get-Date;

      if( -not $successfullySetConfigDC)
      Write-ExchangeSetupLog -Error “Unable to set shared config DC.”;
      ” was run: “Unable to set shared config DC.”.

      2013 exchange server error problem

  45. Peter J. Nilsson

    Hi – Got the most stupid problem ever.

    Try to run
    setup /PrepareAD /IAcceptExchangeServerLicenseTerms

    If I do it in Powershell logged on as my real account – its opened in a separate prompt and closed immediately after completion so i cannot see the error messages.

    If I open Powershell as Administrator I don’t have the necessary permissions to change schema.

    What’s the trick here?

    (WinServer2012 & Exchange 2013 in org where Exchange 2007 already exists)


  46. Tom

    i’m trying to setup an Exchange 2013 server but the prerequisites says, there’s an Exchange 2003 Server running in my domain. But i’m shure, there’s no one. Only an Exchange 2007.
    Any hints what to do?


    1. Avatar photo
      Paul Cunningham

      Perhaps you have an Exchange 2003 server that was not properly uninstalled. You would possibly only see that by digging into ADSIEdit.

      1. Tom

        Thanks, this helps. There was really an old 2003 in the deeps of the AD. I’ve found some notes howto fix this and now it works.


  47. Jonathan

    Hi Paul,

    Good article. Encouraging in that you refer to Windows Server 2008 R2 SP2, which I had hoped to use for base OS for Exchange 2013. These pre-requisites are of course necessary to install the Exchange 2013 product on the selected base OS of either Windows server 2008 R2 Sp1 or Windows Server 2012 and mentioned in your article.

    I am attempting to install Exchange 2013 in a lab environment consisting of Windows Server 2008 R2 SP1. (Two DC’s a CAS and a MB server).

    When attempting to install the pre-requisite “Windows Management Framework 3.0” on Windows Server 2008 R2 SP1 I get an error “This update is not applicable to your computer” which for this OS is Windows6.1-KB2506143-x64. This is required for both the CAS and MB server and introduces PS 3.0 to the OS.

    After several attempts I have moved on, to install on Windows Server 2012 Standard edition as this has power shell 3.0 inbuilt.

    However both you and MS claim that it is possible to install Windows Management Framework 3.0, to allow Exchange 2013 installed on 2008 R2 SP1.

    Do you know why this fails?

    As per MS TechNet article the following pre-requisites were installed.

    Any help appreciated.

  48. cuocdoi


    when I install Exchange 2013 in Window 2008 R2, I met an error as below:

    Step 7 of 14: Mailbox role: transport service

    The following error was generated when “$error.Clear();
    if ( ($server -eq $null) -and ($RoleIsDatacenter -ne $true) )
    Update-RmsSharedIdentity -ServerName $RoleNetBIOSName
    ” was run: “Database is mandatory on UserMailbox. Property Name: Database”.

    Could you help me how to solve it, please ?


  49. keith

    i have a exchange 2007 sp3 RU10 with win 2k8 enterprise running in a production site, and i have a exchange 2013 with server 2k8R2 Enterprise , it is now coexistence, i would like to know how to move mailbox over from exchange 2007 to exchange 2013 ?

  50. David

    Hi Paul,

    You prerequisites are wrong. You do not require Windows Server 2008 DC/GC per site, according to Microsoft, Windows Server 2003 SP2 or later is required “”


    1. Akram

      I think you mis-read, for each Exchange server in an AD site you need a DC with GC.

  51. Prashant

    And also you did’t get client array server option..when you installed exchage 2013..How did you configure new cas array on exchage 2013…?


  52. Prashant


    How to Configure Outllok e-mail account useing exchage 2013 useraccount..


  53. Bert Gaspard

    Can you install exchange 2013 in a server 2012 domain controller

      1. Bert Gaspard


  54. Martin

    Sorry, I have got the setup file after exchange-x64 unzip, sorted out. I had to run it as “.setup …” command.

  55. Martin

    I have tried to run the “setup /PrepareAD /OrganizationName: “your organization name” /IAcceptExchangeServerLicenseTerms” command in Windows Server 2012 Evaluation Datacenter machine and get the error “a setup term is not recognized…”. The command “Install-WindowsFeature RSAT-ADDS” has been executed corractly. Did I miss something? An Exchange Server downloaded file ha a name “Exchange-x64.exe” – “no setup.exe”, so what “setup” should I use, please? Thanks.

  56. Hi Paul, I am trying to get an instance of Exchange 2013 up and running on a single lab VM with MS SharePoint 2013 Preview. My principal aim is to explore the new Site Inbox functinality that SP2013 now offers. I understand that I need Exchange 2013 for this. My VM is running Server 2012 Preview, as well as SQL Server 2012 Preview and AD server 2012 Preview. I have the 200-something Contoso users set up both in AD and as SP2013 users. I know little to nothing about Exchange and am looking for resources, scripts or just plain instructions on how to set up a minimal Exchange configuration for this purpose. Any help would be greatly appreciated. Kind regards, Robert

Leave a Reply