John Bailey (EXCHANGE)

Microsoft | Senior Service Engineer | Exchange Online

Netlogon: Cross-Forest Delayed Authentication Requests Cause Subsequent (and Continuous) Authentication Failures

One of the longest debugging experiences I've ever had to debug, so far, in Exchange was a code bug...

Author: John Bailey [MSFT] Date: 12/29/2017

Windows 10: Removing Groove, Facebook, and Other Unwanted Apps

A few months ago, someone very dear to me asked why they couldn't remove unwanted apps from Windows...

Author: John Bailey [MSFT] Date: 12/27/2017

O365 and Exchange 2016/Exchange 2013: Understanding the UserPhoto API

We recently had an issue for an Enterprise Cloud customer, in which the photo was not rendering for...

Author: John Bailey [MSFT] Date: 06/16/2017

2017 Project: Documented Code Samples

In an effort to empower more people across the planet to learn, but for it not to be an arduous...

Author: John Bailey [MSFT] Date: 03/26/2017

EXODSnapIn: Alpha Release

I wanted to write a post about the project I've been working on since circa December 2015. It's...

Author: John Bailey [MSFT] Date: 05/05/2016

C# + AD: Dump COM and Use System.DirectoryServices.Protocols with LINQ to Query AD

A while back, I posted about using ADSI COM to get the data that you wanted. I want to show you how...

Author: John Bailey [MSFT] Date: 04/25/2016

Debugging: When Recursive NDRs Bring the FSC to It's Knees And Causes Queuing

A while back (circa July 2015), we had alerting for queuing for a Dedicated customer. When we went...

Author: John Bailey [MSFT] Date: 04/05/2016

Debugging: Incremental Mailbox Sync Move Requests Cause 'StopAll' to be called on the Assistants Infrastructure Which Causes CalendarNotificationAssistant to Stop Processing Text Message (SMS) Notifications

Not too long ago, I debugged an issue with the Calendar Notification Assistant (CNA), wherein the...

Author: John Bailey [MSFT] Date: 04/05/2016

PowerShell + C#: Accessing the Current Runspace And Adding a Snap-In

I've been coding an assembly for import into the Exchange Management Shell (EMS) in C# for some...

Author: John Bailey [MSFT] Date: 04/05/2016

Exchange 2010: AD Recipient Cache and Locking Threads in EdgeTransport - Or How We Figured Out Something Wasn't Right With Mail Stuck in Submission Queue

A while ago we had an issue, wherein SCOM fired for message queue length for messages in Submission....

Author: John Bailey [MSFT] Date: 06/15/2015

Exchange 2013: Understanding the Room Finder function in OWA

In Exchange 2013, when you use OWA to book a room, there can be two methods that get called for this...

Author: John Bailey [MSFT] Date: 12/10/2014

OAB: BITS Provides Data for Troubleshooting

At certain times, it may become necessary to troubleshoot OAB downloads from the client-perspective....

Author: John Bailey [MSFT] Date: 11/24/2014

Exchange: Non-Discriminant Mailbox Moves

I had to rebuild my lab and in one of the invariable problems of doing this is that the default...

Author: John Bailey [MSFT] Date: 11/07/2014

Exchange: Recovering a Database from Dirty Shutdown (the Easy Way)

In testing (and production), we invariably run into problems where the database will be in a...

Author: John Bailey [MSFT] Date: 10/14/2014

C#: Returning an Object via System.Threading.Tasks.Task

In programming something (in EWS), discovered the joys of what I believe was 'lock...

Author: John Bailey [MSFT] Date: 10/13/2014

C#: Returning ADSI COM Properties of a User Object (Or Any Object, Really)

A few months ago, I was working on a project to query for specific AD properties of a user-object...

Author: John Bailey [MSFT] Date: 10/11/2014

ExRCA: Analyzing Messages via Headers

ExRCA (https://testconnectivity.microsoft.com/ or http://www.exrca.com/ [Redirects to the former.])...

Author: John Bailey [MSFT] Date: 10/11/2014

Exchange 2013: MailboxTransportMBTDeliveryPercentPermanentFailedMonitor Fires When User is Over Quota

In Exchange 2013, there may be an instance where a user is over-quota and causes the Mailbox...

Author: John Bailey [MSFT] Date: 10/01/2014

Exchange 2013: When the DAG NIC Affects Transport, That Can't Be Good

In my on-premises Exchange 2013 lab, there was a queue built up to a mailbox: Get-TransportService |...

Author: John Bailey [MSFT] Date: 08/25/2014

O365: CDN Change Causes OWA Client Error

Recently, we've seen a pattern of escalations wherein users are no longer able to access OWA....

Author: John Bailey [MSFT] Date: 08/18/2014

Exchange 2013: Recipient Filtering Agent (More Lessons in Proxy)

With the arrival of Exchange 2013 came some design changes and, with those changes, inevitably...

Author: John Bailey [MSFT] Date: 08/06/2014

O365: Accessing Another Mailbox via OWA URL

It may become necessary for an admin or delegate to access a mailbox (other than their own) in OWA....

Author: John Bailey [MSFT] Date: 08/04/2014

PowerShell Scripting: EWS and IPM.Configuration.Owa.UserOptions

So, to start off, I should explain how this script came about and why it's, currently, in a...

Author: John Bailey [MSFT] Date: 07/28/2014

Hybrid Configuration Wizard: Exchange server "" was not found. Please make sure you typed the name correctly.

When you decommission an Exchange Server in your Organization and have a Hybrid Configuration, one...

Author: John Bailey [MSFT] Date: 07/24/2014

SysInternals: How Handle Helped Me Figure Out Outlook Was Up to No Good

So, after a lengthy day of some C# battles, a few Exchange issues, and some ded.pixel blaring...

Author: John Bailey [MSFT] Date: 07/09/2014

Testing Responses to 'GET' Requests (The Easy Way)

Often times, it may become necessary to look at the response received from a 'GET' request...

Author: John Bailey [MSFT] Date: 06/22/2014

Debugging: When Recursive Becomes Recursively Too Much

Recently, I had a problem with a build environment and, specifically, I was receiving a...

Author: John Bailey [MSFT] Date: 06/15/2014

Server2012: Adding DAG Member Results in 'The fully qualified domain name for node 'EMEA-SWEEX15-01' could not be found.'

To get around this, add the permissions by following this article for pre-staging the Cluster Name...

Author: John Bailey [MSFT] Date: 05/04/2014

C# + EWS: Autodiscover Test (Exchange and O365)

In times of troubleshooting client-side issues, it may become necessary to query for the...

Author: John Bailey [MSFT] Date: 04/16/2014

Server 2012: Using PowerShell to Check for KB2878635

In the course of an investigation, it became necessary to write a PowerShell script to check the...

Author: John Bailey [MSFT] Date: 04/15/2014

O365/Exchange 2013: Obtaining Move Report After The Move Request Has Been Removed

Often times, we will get an issue, where we need to check if any issues have occurred due to a move...

Author: John Bailey [MSFT] Date: 04/08/2014

Fermion: A Side-Project for Administration

NOTICE: Sample programs in this blog are not supported under any Microsoft standard support program...

Author: John Bailey [MSFT] Date: 03/30/2014

Exchange 2013: eDiscovery Changes

With the release of Exchange 2013, there are some changes that are relevant to eDiscovery; whether...

Author: John Bailey [MSFT] Date: 02/11/2014

O365: Testing Problems With RpcProxy for Outlook Anywhere Migrations

Often times, it may be necessary to test the RpcProxy URL to verify connectivity to your servers....

Author: John Bailey [MSFT] Date: 01/21/2014

Using PowerShell and .NET to Construct a DirectorySearcher

PowerShell and .NET are very interoperable and can help to save time, when you're performing...

Author: John Bailey [MSFT] Date: 01/10/2014

Exchange2013: Testing MRS Across A DAG

In Exchange 2013, it may become necessary to test the Mailbox Replication Service (MRS) against all...

Author: John Bailey [MSFT] Date: 12/26/2013

Exchange 2013: 'Get-AgentLog' Throws Exception When Run From The Front End

During the investigation of a not-so-recent case, it was discovered that Get-AgentLog - when run...

Author: John Bailey [MSFT] Date: 12/18/2013

O365: Manual Outlook Profile Creation in Wave 15

After the migration to Wave 15, Tenant Admins may find it necessary to create manual Outlook...

Author: John Bailey [MSFT] Date: 12/10/2013

O365: On-Premises Transport Queuing Lessons Learned from CBL

I recently had a case where on-premises Transport had Queues that were 'stuck' going to the cloud....

Author: John Bailey [MSFT] Date: 12/06/2013

O365: PST Export Tool Issue and Possible Resolution[s]

It has been discovered that some customers experience a problem with the PST export tool in the...

Author: John Bailey [MSFT] Date: 11/07/2013

DAGs: When Installing Them Becomes A Chore

I had a lab and I was running into a problem building a Database Availability Group (DAG). I had...

Author: John Bailey [MSFT] Date: 10/24/2013

RBAC: Associating a Command With a Specific Groups

In some scenarios, it becomes prudent to know what Role is able to run which command. We can found...

Author: John Bailey [MSFT] Date: 09/27/2013

O365: Exchange and AD - How msExchRecipientDisplayType and msExchangeRecipientTypeDetails Relate to Your On-Premises

Now maintained here:...

Author: John Bailey [MSFT] Date: 09/11/2013

O365 & EWS: EmailMessage.SetExtendedProperty() Introduces Undesirable Behavior for Cloud

In Office 365, there is a known issue where Item.SetExtendedProperty() will prevent...

Author: John Bailey [MSFT] Date: 08/21/2013

EWS: Obtaining Mail Item from List

In troubleshooting an issue for a customer, I ran into a problem: I could obtain the data from the...

Author: John Bailey [MSFT] Date: 08/14/2013

Exchange 2013: High Availability - When Maintenance Might Be Necessary

During the course of your on-premises environment, it may become necessary to take a production...

Author: John Bailey [MSFT] Date: 07/17/2013

Exchange 2013: High Availability, FAST Search, and the Windows Registry

One of the things not mentioned about High Availability (HA) and Database Availability Groups (DAGs)...

Author: John Bailey [MSFT] Date: 07/16/2013