Office 365: ‘Subtask ValidateConfiguration execution failed: Configure Mail Flow’


When executing Hybrid Configuration Wizard you may receive plenty of different error messages related to any part of the process. One of the errors I have seen quite often is “Configure Mail Flow” error which happening on ‘Get-HybridMailflow’ command. It looking like:

[1/11/2000 18:16:56] ERROR:Updating hybrid configuration failed with error 'Subtask ValidateConfiguration execution failed: Configure Mail Flow
  at Microsoft.Exchange.Management.Hybrid.Engine.ExecuteTask(ITask taskBase, ITaskContext taskContext)
Additional troubleshooting information is available in the Update-HybridConfiguration log file located at C:\Program Files\Microsoft\Exchange Server\V14\Logging\Update-HybridConfiguration\HybridConfiguration_date_logfile.log.

Continue reading

Office 365: Refresh Hybrid configuration procedure

There can be situation where you need completely remove an re-create your Hybrid configuration which can seem challenging from required actions point of view. Procedure below describe steps needed to be done in order if you want remove and create Hybrid Configuration for example if you receiving following error when running Hybrid Configuration Wizard:

Execution of the Set-FederatedOrganizationIdentifier cmdlet has thrown an exception. This may indicate invalid parameters in your hybrid configuration settings.
 Federation trust "yourfederateddomain/Configuration/Deleted Objects/Microsoft Federation Gateway DEL:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" wasn't found. Make sure you have typed it correctly.
 at Microsoft.Exchange.Management.Hybrid.RemotePowershellSession.RunCommand(String cmdlet, SessionParameters parameters, Boolean ignoreNotFoundErrors)

That particular procedure is written for Exchange 2013/Office 365 Wave 15 configuration, but it works pretty well for Exchange 2010/Wave 15 Hybrid.


  1. Execute following command on you on-premise Exchange 2013 server (that command is not available on Exchange 2010, if your Hybrid server is Exchange 2010, just skip that step):
  2. Remove existing organization relationships from both on-premise and O365 (you can use that command, if you have just single relationship on each side):
    Get-OrganizationRelationship | Remove-OrganizationRelationship
  3. Continue reading

Unable to retrieve Free/Busy information for some Office 365 mailboxes. Event ID: 4002; Source: MSExchange Availability;


If you running Hybrid Environment or just trying to share free/busy information between your on-premise Exchange Organization and Office 365 you may experience that free/busy information for some mailboxes which were recently moved to O365 is not available. Please note that problem does not affect free/busy from on-premise to O365, if you cannot get free/busy for on-premise mailboxes – it must be another issue.

In addition you may see error similar to following in Application Event Log of your Hybrid server:

Event 4002, MSExchange Availability
Process 4192: ProxyWebRequest FederatedCrossForest from S-0-0-00
-0000000000-0000000000-000000000-0000 to https://server_name.outl failed. Caller SIDs: WSSecur
ity. The exception returned is Microsoft.Exchange.InfoWorker.Comm
on.Availability.ProxyWebRequestProcessingException: System.Web.Se
rvices.Protocols.SoapException: An internal server error occurred
. The operation failed.

Continue reading

MS Exchange 2007 Mailbox Statistics

Lets say you need to get information about all mailbox users in your Microsoft Exchange 2007 organisation. Quotas, mailbox size, item count, time when users logged in last time…

It is easy!

Don’t forget to use following in multi-domain environment : $AdminSessionADSettings.ViewEntireForest=$True

Query for Exchange Management Shell:

Get-Mailbox -ResultSize 'Unlimited' -IgnoreDefaultScope | Select DisplayName, Identity, Database, @{label="IssueWarning(MB)";e={(Get-Mailbox $_).IssueWarningQuota.Value.ToMb()}},@{label="ProhibitSend(MB)";e={(Get-Mailbox $_).ProhibitSendQuota.Value.ToMb()}},@{label="ProhibitSendReceive(MB)";e={(Get-Mailbox $_).ProhibitSendReceiveQuota.Value.ToMb()}},@{label="Uses Database Quota Defaults";e={(Get-Mailbox $_).UseDatabaseQuotaDefaults}}, @{label="TotalSize (MB)";e={(get-mailboxstatistics $_).TotalItemSize.Value.toMB()}}, @{label="Item Count";e={(get-mailboxstatistics $_).ItemCount}}, @{label="Last Logon";e={(get-mailboxstatistics $_).LastLogonTime}}| Export-CSV -Path ".\ExchangeStats.csv"