If you prefer to run Exchange Server setup for new installations or cumulative updates using the GUI rather than the command line, then you aren’t alone, and if you are finally getting round to removing an Exchange Server 2010 or 2013 Hybrid and replacing it with Exchange Server 2016, then it’s better late than never.

In larger environments, where the Active Directory is ran by a separate identity team it would be common practice for the Schema updates and AD preparation to be ran by this team, from the command line.

In theory, you should also be able to simply run the Exchange Server 2016 setup via the GUI and allow it to both prepare Active Directory and also install Exchange. Unfortunately, you might receive the following failure message:

Hybrid Deployment Check – Deserialization fails due to one SerializationException

Hybrid Deployment Check
Deserialization fails due to one SerializationException: System.Runtime.Serialization.SerializationException: Unable to find assembly 'Microsoft.M365.Core.Utility, Version= 18.0.0.0, Culture= neutral, PublicKeyToken= 5a24b4a52c5686bd'. at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblylnfo.GetAssemblyO
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblylnfo assemblylnfo, String name) at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String!) memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object!) typelnformationA, Int32[) memberAssemlds, ObjectReader objectReader, Int32 objectld, BinaryAssemblylnfo assemblylnfo, SizedArray assemldToAssemblyTable) at System.Runtime.Serialization.Formatters.Binary._BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at System.Runtime.Serialization.Formatters.Binary._BinaryParser.RunO
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, _BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at Microsoft.Exchange.Data.SerializationTypeConverter.DeserializeObject(Object sourceValue, Type destinationType)

If you don’t even get this far then it could be for several other reasons; firstly – you should have disabled Legacy Authentication to your tenant and use Multi-Factor-Authentication for your administrative accounts; and the password field on the Office 365 credentials page of the Exchange Server 2016 setup wizard doesn’t support pasting in the password. Nonetheless, this isn’t the way to solve the issue.

To solve the issue, you will need to drop to the command line (or a PowerShell prompt) and prepare Active Directory before you run the GUI setup.

You’ll first need to use the Exchange Online PowerShell module to run the following cmdlets to extract the organization config from your Microsoft 365 tenant into an XML file.

Get-OrganizationConfig | Export-CliXML .\MyTenantOrganizationConfig.xml

Copy the resulting XML file to a location that the Exchange Server 2016 Setup.exe can access it. Then, run Setup.exe with the following parameters:

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

Once complete, continue your installation of the first Exchange Server 2016 via the GUI if you prefer (or of course the command line)

The above method will be familiar to you if you’ve installed via the command line before – but as the error message you’ll see is a little unhelpful, it won’t lead you to the Microsoft documentation describing the above procedure.

About the Author

Steve Goodman

Chief Editor for Audio and Video Content and Technology Writer for Practical 365, focused on Microsoft 365. A nine-time Microsoft MVP, author of several Exchange Server books and regular conference speaker, including at Microsoft conferences including Ignite, TechEd and Future Decoded. Steve has worked with Microsoft technology for over 20 years beginning and has been writing about Exchange and the earliest iterations of Office 365 since its inception. Steve helps customers plan their digital transformation journey and gets hands on with Microsoft Teams, Exchange and Identity projects.

Comments

  1. Filip Soogen

    Hi Steve ,
    do you also need to run this command if on the exchange2010 there was only ran a MINIMAL hybrid setup ? So no TLS connectors , free/busy sharing , ….
    On the 2010 there are no more mailboxes left and the 2016 box will only serve as a management server.

Leave a Reply