Exchange 2010 Upgrade

Thomas P Simon 0 Reputation points
2023-02-20T08:12:56.0566667+00:00

Hi,

I am seeking help for a best possible scenario for our Exchange hybrid setup. The current setup is, all mailboxes on exchange online with three Exchange 2010 servers running on windows 2008 R2 on-premise servers (DAG). AD is also running on Windows 2008. As both Windows 2008 and 2008 R2 are discontinued, I would like to upgrade them to Windows 2019.

As far as I know, if I go ahead with introducing a new Windows 2019 server to the domain, Exchange 2010 will have compatibility issues and may stop working.

Complete decommissioning of Exchange 2010 and moving the AD to Azure is also not possible as we have many applications like MS Navision still authentication to on-premise AD.

In this case I would like to know which is the best possible method to upgrade the entire on-premise setup to Windows 2019.

Thanks!

Microsoft Exchange Online
Exchange Server
Exchange Server
A family of Microsoft client/server messaging and collaboration software.
1,444 questions
Microsoft Exchange Online Management
Microsoft Exchange Online Management
Microsoft Exchange Online: A Microsoft email and calendaring hosted service.Management: The act or process of organizing, handling, directing or controlling something.
4,745 questions
Exchange Server Management
Exchange Server Management
Exchange Server: A family of Microsoft client/server messaging and collaboration software.Management: The act or process of organizing, handling, directing or controlling something.
7,789 questions
Microsoft Exchange Hybrid Management
Microsoft Exchange Hybrid Management
Microsoft Exchange: Microsoft messaging and collaboration software.Hybrid Management: Organizing, handling, directing or controlling hybrid deployments.
2,226 questions
{count} votes

3 answers

Sort by: Most helpful
  1. Andy David - MVP 152.3K Reputation points MVP
    2023-02-20T12:56:26.98+00:00
    1 person found this answer helpful.
    0 comments No comments

  2. Yuki Sun-MSFT 41,216 Reputation points Microsoft Vendor
    2023-02-21T03:16:52.6566667+00:00

    Hi @Thomas P Simon ,

    As far as I know, if I go ahead with introducing a new Windows 2019 server to the domain, Exchange 2010 will have compatibility issues and may stop working.

    True. According to Exchange Server supportability matrix - Supported Active Directory environments, running Exchange 2010 in an AD environment of Windows server 2019 is Not supported.

    Windows Server 2019 Active Directory servers require Exchange 2016 CU12 or later, and currently, only Exchange 2019 can run on Windows server 2019:
    1

    2

    So, take all these factors into consideration, agree with Andy that it's suggested to first migrate to Exchange Server 2016 hybrid, decommission the Exchange Server 2010, and then migrate from Exchange 2016 to Exchange 2019, run the Hybrid Configuration Wizard in 2019 and then remove 2016.

    You can use the Microsoft Deployment Assistant tool https://assistants.microsoft.com/ when upgrading the Exchange server.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    0 comments No comments

  3. Thomas Simon 0 Reputation points
    2024-01-16T12:07:10.1866667+00:00

    Hi,

    Thank you for the replies.

    Finally I am starting this migration process.

    Facing an error while running the exchange server 2016 CU 23 on a Windows 2016 Server. I have already successfully completed the below steps :

    1. Install-WindowsFeature RSAT-Clustering-CmdInterface, 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
    2. Installed Microsoft Unified Communications Managed API (UCMA)
    3. Installed Microsoft .NET Framework 4.8

    4.Setup.exe /PrepareAD /TenantOrganizationConfig MyTenantOrganizationConfig.xml /IAcceptExchangeServerLicenseTerms

    5.setup.exe /PrepareDomain

    After all these steps while running setup, below error is triggered during readiness check:

    Executionpolicy for LocalMachine is set as RemoteSigned

    Error:
    
    The following error was generated when "$error.Clear(); 
    
              if($RoleInstallWindowsComponents)
    
              {          
    
                # Install any Windows Roles or Features required for the Management Tools role
    
                & $RoleBinPath\InstallWindowsComponent.ps1 -ShortNameForRole "AdminTools" -ADToolsNeeded $RoleADToolsNeeded
    
              }
    
            " was run: "System.Management.Automation.PSSecurityException: File C:\Windows\Temp\ExchangeSetup\InstallWindowsComponent.ps1 cannot be loaded because you opted not to run this software now. ---> System.UnauthorizedAccessException: File C:\Windows\Temp\ExchangeSetup\InstallWindowsComponent.ps1 cannot be loaded because you opted not to run this software now.
    
       --- End of inner exception stack trace ---
    
       at System.Management.Automation.AuthorizationManager.ShouldRunInternal(CommandInfo commandInfo, CommandOrigin origin, PSHost host)
    
       at System.Management.Automation.CommandDiscovery.ShouldRun(ExecutionContext context, PSHost host, CommandInfo commandInfo, CommandOrigin commandOrigin)
    
       at System.Management.Automation.CommandDiscovery.LookupCommandProcessor(CommandInfo commandInfo, CommandOrigin commandOrigin, Nullable`1 useLocalScope, SessionStateInternal sessionState)
    
       at System.Management.Automation.CommandDiscovery.LookupCommandProcessor(String commandName, CommandOrigin commandOrigin, Nullable`1 useLocalScope)
    
       at System.Management.Automation.ExecutionContext.CreateCommand(String command, Boolean dotSource)
    
       at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[] commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
    
       at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext)
    
       at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
    
       at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)".
    
    
    

    Thanks Thomas

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.