MSExchangeGuru.com

Learn Exchange the Guru way !!!

 

Exchange 2016 Troubleshooting

In the new deployment I troubleshooted 3 issues in a day so share the experience here which might help someone.

Current Infra:

Exchange 2010

    DAG with 2 MBX

    2 CAS/HT

2 windows 2008 R2 DC

Single site Single forest.

New Infra

    Addition of 2 Exchange 2016

        We choose CU1 because Microsoft reverted Remote PowerShell Proxying Behavior in CU1 as mentioned here. https://blogs.technet.microsoft.com/exchange/2016/03/01/remote-powershell-proxying-behavior-in-exchange-2013-cu12-and-exchange-2016/

Exchange 2016 CU1 deployed successfully and then deployed Security Update KB3150501 on Ex1 1st then EX2.

 

Issue 1: Unable to access ECP and OWA post Security Update KB3150501 Deployment

Troubleshooting:

In Exchange 2016 CU1 production deployment, we installed KB3150501 one DAG nodes got the following error in accessing ECP and OWA says BAD request. While 2nd node was updating with the same update.

Description: An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.


Application log had the following event:

Log Name:      Application
Source:        ASP.NET 4.0.30319.0
Event ID:      1310
Task Category: Web Event
Level:         Warning
Keywords:      Classic
User:          N/A
Description:

Event code: 3008

Event message: A configuration error has occurred.

Event time: 6/22/2016 3:58:05 AM

Event time (UTC): 6/22/2016 7:58:05 AM

Event ID: ee3d769f05b34e08b0099b98c9465285

Event sequence: 1

Event occurrence: 1

Event detail code: 0

Application information:

Application domain: /LM/W3SVC/2/ROOT/ecp-3-131110558856537844

Trust level: Full

Application Virtual Path: /ecp

Application Path: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\

Machine name: EXCHANGE

Process information:

Process ID: 16696

Process name: w3wp.exe

Account name: NT AUTHORITY\SYSTEM

Exception information:

Exception type: ConfigurationErrorsException

Exception message: Could not load file or assembly ‘Microsoft.Exchange.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.

at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)

at System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement)

at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)

at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)

at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)

at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)

at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)

at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)

at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

Could not load file or assembly ‘Microsoft.Exchange.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.

at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)

at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)

at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)

Request information:

Request URL: https://localhost:444/ecp/

Request path: /ecp/

User host address: ::1

User:

Is authenticated: False

Authentication Type:

Thread account name: NT AUTHORITY\SYSTEM

Thread information:

Thread ID: 33

Thread account name: NT AUTHORITY\SYSTEM

Is impersonating: False

Stack trace: at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)

at System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement)

at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)

at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)

at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)

at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)

at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)

at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)

at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

-We had same issue last year with Exchange 2013 Security update 3040856 and Ratish had blogged here. https://msexchangeguru.com/2015/03/31/troubleshooting/

-I never wanted to uninstall a security update.

-Tried to install .net framework 3.5 but no luck.

-Security update takes some time so while I was facing this issue, Ex2 was being updated. This update shutdown all your services so your server will not serve anything.

 

Resolution:

The mailbox to login to ECP was on the Database which was on the Server2 and it was not configured in HA. So if I have a mailbox on Ex1 then it does not need Ex2. This also means when I got the error mentioned in the screenshot was due to the ongoing upgrade on the 2nd server at that time.

So we have to make sure our ECP mailbox is mounted while accessing the ECP.

Once I restarted 2nd node post update, ECP started working

 

Issue 2:
ECP is getting blank page.

Troubleshooting:

-Stopped WWW service in Ex2 and Tried to access ECP from Ex1. We got blank page.

-Stopped WWW service in Ex1 and Tried to access ECP from Ex1. We got error 404.

Created a mailbox on Ex1 DB and Stopped WWW service in Ex2. ECP was working.

Resolution:

As mentioned in the previous resolution, the database which has your mailbox needs to mounted in order to access ECP. So as soon as we got the access to the mailbox, ECP started working.

 

Issue 3: Unable to connect to EMS and ECP, OWA works after .net framework 3.5 uninstallation.

Troubleshooting:

Got the following error in the browser when accessing ECP.

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


-Took the backup and cleared the value in “msExchCanaryData0” from this location then reset ECP and OWA app pools but no luck.

CN=Client Access,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Domain,DC=com


-Got the following error in connecting to Exchange management shell


-Got the following event in the application log

Log Name: Application

Source: MSExchange Control Panel

Date: 6/22/2016 4:11:59 PM

Event ID: 4

Task Category: General

Level: Error

Keywords: Classic

User: N/A

Computer: EXCHANGE.domain.com

Description:

Current user: ‘domain.com/Users/adm_prabhat2016’

Request for URL ‘https://exchange.domain.com:444/ecp/default.aspx(https://localhost/ecp/)’ 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_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine’.

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, ControlAdapter adapter)

at ASP.default_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)

at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)

at System.Web.UI.Page.Render(HtmlTextWriter writer)

at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.HandleError(Exception e)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest()

at System.Web.UI.Page.ProcessRequest(HttpContext context)

at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

at System.Web.UI.Page.HandleError(Exception e)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest()

at System.Web.UI.Page.ProcessRequest(HttpContext context)

at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

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_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine’.

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, ControlAdapter adapter)

at ASP.default_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)

at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)

at System.Web.UI.Page.Render(HtmlTextWriter writer)

at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

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, ControlAdapter adapter)

at ASP.default_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)

at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)

at System.Web.UI.Page.Render(HtmlTextWriter writer)

at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Microsoft.Exchange.Diagnostics.SetupVersionInformationCorruptException: Unable to determine the installed file version from the registry key ‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine’.

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)

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)

Flight info: Features:[[Global.DistributedKeyManagement, False],[Global.FrontdoorDefaultURL, False],[Global.GlobalCriminalCompliance, False],[Global.MultiTenancy, False],[Global.WindowsLiveID, False],[Eac.AllowMailboxArchiveOnlyMigration, True],[Eac.AllowRemoteOnboardingMovesOnly, False],[Eac.AllowSender, False],[Eac.AntiSpamBulkThresholdUI, False],[Eac.AntispamTenantAllowBlockLists, False],[Eac.BulkPermissionAddRemove, True],[Eac.CmdletLogging, True],[Eac.ComplianceAllPublicFolderSearch, False],[Eac.ComplianceCase, False],[Eac.ConditionCards, False],[Eac.ConvertMailboxUI, False],[Eac.CrossPremiseMigration, False],[Eac.CustomizableMaxMsgSizeUI, True],[Eac.CutomizableSenderAuthenticationInNewDistributionGroup, False],[Eac.DevicePolicyMgmtUI, False],[Eac.DiscoveryDocIdHint, False],[Eac.DiscoveryPFSearch, True],[Eac.DiscoverySearchStats, False],[Eac.DiscoveryV1Export, True],[Eac.DKIMSigningConfigUI, False],[Eac.DLPBlockForUnifiedCompliance, False],[Eac.DlpFingerprint, False],[Eac.DlpPolicyDetailsAndError, False],[Eac.DLPUnifiedCompliancePreview, False],[Eac.DLPWarnForUnifiedComplianceAvailability, False],[Eac.EACClientAccessRulesEnabled, False],[Eac.EacFeedbackControl, False],[Eac.EDiscoveryDisplayNote, False],[Eac.EdiscoveryExportV2AnalyzeWithZoom, False],[Eac.EdiscoveryExportV2General, False],[Eac.EdiscoveryHold, False],[Eac.EdiscoveryPreviewSearchUI, True],[Eac.EdiscoverySearchUI, False],[Eac.FileFilter, False],[Eac.GeminiShell, False],[Eac.GrantSendOnBehalfToForSharedMailbox, False],[Eac.HoldForModernGroups, False],[Eac.InactiveMailboxSearch, False],[Eac.ManageMailboxAuditing, False],[Eac.ModernGroups, False],[Eac.NewAuditingOptInUIOptIn, True],[Eac.NewAuditingReportUIOptIn, True],[Eac.NonExchangeWorkloadsUI, False],[Eac.Office365DIcon, False],[Eac.OrgIdADSeverSettings, False],[Eac.PreviewQuarantineMessage, False],[Eac.PreviewQuarantineMessageAdvanced, False],[Eac.PreviewSnapshotSearchUI, False],[Eac.ProtectionCenterOptIn, False],[Eac.PublicFolderHoldManagement, False],[Eac.RemoteDomain, False],[Eac.SafeAttachments, False],[Eac.SafeAttachmentsDynamicDelivery, False],[Eac.SafeLinks, False],[Eac.SafeLinksScanUrls, False],[Eac.SPOPickerSearchAllTenantContent, False],[Eac.SupervisoryReview, False],[Eac.UCCAlertsReportingUI, False],[Eac.UCCAuditReports, False],[Eac.UCCIngestionUI, False],[Eac.UCCPermissions, False],[Eac.UCCTestProbeUI, False],[Eac.UnifiedAuditPolicy, False],[Eac.UnifiedAuditReportUI, False],[Eac.UnifiedComplianceCenter, False],[Eac.UnifiedDlpGA, False],[Eac.UnifiedPolicy, False],[Eac.UnifiedRetention, False],[Eac.UnlistedServices, False],], Flights:[], Constraints:[[LOC, EN-US],[MACHINE, EXCHANGE],[MODE, ENTERPRISE],[PROCESS, MSEXCHANGEECPAPPPOOL],[USER.PN2016^A, TRUE],[USERTYPE, BUSINESS],], IsGlobalSnapshot: False

-If we look in the event log then we can see the following text telling us that Exchange server is unable to find file version of the PowerShell engine.

Unable to determine the installed file version from the registry key ‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine’

-Opened the following registry location on both EX1 (working ) and Ex2 (EMS and ECP issue).

‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine

-Exported working server’s registry key and imported into the Ex2 the problem server.

-Now EMS and ECP started working.

 

Resolution:

Updated the following registry key on the problem server.

If you need the registry key, then you can download from here. https://gallery.technet.microsoft.com/Exchange-2016-CU1-7c843cb0

Make sure to backup current registry key before importing registry key on the problem server.

 

Prabhat Nigam

Microsoft MVP | Office Servers and Services

Team@MSExchangeGuru

Leave a Reply

Categories

Archives

MSExchangeGuru.com