How to fix Exchange 2016 Toolbox

Ted Williams 20 Reputation points
2023-01-31T08:36:00.5766667+00:00

I have just installed the latest the latest CU23 and run the HealthChecker.ps1 and fixed all problems but now the Exchange Toolbox does not work, The Exchange PowerShell works fine, the shell is set to remote signed, i have the latest visual 2013 and 2012 installed, i have even install the management tools on my computer all i get is

FX:{714FA079-DC14-470f-851C-B7EAAA4177C1}

Deserialization fails: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: The process 'mmc' (PID = 18252) has been initialized as Unknown Multiple instance type un-expectedly. 
 Reasons of this exception: 1. For any product executables, which will be shipped out of box, they should never use AD driver functionality without initializing its performance counter instance since we can NOT show a intuitive Perf Counter instance name here.
 2. We don't need the validation for test assembly because we don't care for its performance counter naming; however, we definitely want to make sure it is under our control, so that we don't miss any out of box product DLLs/EXEs.
 What to do to avoid this exception: For any newly added Exchange test executables which utilize AD perf, please add the executable name of the process into exclusion list in Microsoft.Exchange.Data.Directory.Globals.CheckExchangeTestExecutables.
   at Microsoft.Exchange.Data.Directory.Globals.InitializePerfCounterInstance(String applicationName, Boolean hasMultiInstance, Action`1 logStage)
   at Microsoft.Exchange.Data.Directory.Globals.InitializeUnknownPerfCounterInstance()
   at Microsoft.Exchange.Data.Directory.ADProviderPerf.AddDCInstance(String serverName)
   at Microsoft.Exchange.Data.Directory.LdapConnectionPool.CreateOneTimeConnection(NetworkCredential networkCredential, ADServerInfo serverInfo, LocatorFlags connectionFlags)
   at Microsoft.Exchange.Data.Directory.LdapTopologyProvider.GetDirectoryServer(String partitionFqdn, ADRole role)
   at Microsoft.Exchange.Data.Directory.LdapTopologyProvider.InternalGetServersForRole(String partitionFqdn, IList`1 currentlyUsedServers, ADServerRole role, Int32 serversRequested, Boolean forestWideAffinityRequested)
   at Microsoft.Exchange.Data.Directory.LdapTopologyProvider.GetConfigDCInfo(String partitionFqdn, Boolean throwOnFailure)
   at Microsoft.Exchange.Data.Directory.TopologyProvider.PopulateConfigNamingContexts(String partitionFqdn)
   at Microsoft.Exchange.Data.Directory.TopologyProvider.GetConfigurationNamingContext(String partitionFqdn)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.ADSystemConfigurationSession.GetRootOrgContainer(String partitionFqdn, String domainController, NetworkCredential credential)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.ADSystemConfigurationSession.GetRootOrgContainerId(String partitionFqdn, String domainController, NetworkCredential credential)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.ADConfigurationSession.GetOrgContainerId(String callerFilePath, Int32 callerFileLine, String memberName)
   at Microsoft.Exchange.Security.OAuth.KernelModeConfigurationReader.<>c__DisplayClass7_1.<LoadConfiguration>b__0()
   at Microsoft.Exchange.Data.Directory.ADNotificationAdapter.RunADOperation(ADOperation adOperation, Int32 retryCount)
   at Microsoft.Exchange.Data.Directory.ADNotificationAdapter.TryRunADOperation(ADOperation adOperation, Int32 retryCount)
   at Microsoft.Exchange.Security.OAuth.KernelModeConfigurationReader.LoadConfiguration(Boolean loadOnlineCertificates)
   at Microsoft.Exchange.Security.OAuth.Common.ConfigProviderBase.ManualLoadIfNecessary()
   at Microsoft.Exchange.Security.OAuth.Common.ConfigProviderBase.get_Configuration()
   at Microsoft.Exchange.Security.Authentication.Utility.GetCertificates()
   at Microsoft.Exchange.Security.Authentication.Utility.SafeGetCertificates()
   --- 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.Data.Common.CertificateDataHelper.GetProtectionCertificates()
   at Microsoft.Exchange.Data.Common.HmacCryptoProvider.GetHmacProvider(X509Certificate2[] x509Certificate2s)
   at Microsoft.Exchange.Data.Common.HmacCryptoProvider.VerifyMessage(X509Certificate2[] x509Certificate2s, Byte[] hmac, Byte[] message)
   at Microsoft.Exchange.Data.SerializationTypeConverter.VerifySerializationDataAndGetOriginalSerializationData(Byte[] serializationData)
   at Microsoft.Exchange.Data.SerializationTypeConverter.DeserializeObject(Object sourceValue, Type destinationType)

Any help would be greatly appreciated.

Exchange Server
Exchange Server
A family of Microsoft client/server messaging and collaboration software.
1,292 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,626 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,097 questions
{count} votes

Accepted answer
  1. Andy David - MVP 147.9K Reputation points MVP
    2023-01-31T12:16:10.44+00:00

    Seems to be a known issue once certificate signing is enabled.

    See the comments section

    https://techcommunity.microsoft.com/t5/exchange-team-blog/released-january-2023-exchange-server-security-updates/ba-p/3711808

    2 people found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful

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.