So, during the course of my current project, I’ve been able to re-use a lot of scripts that I’ve spent years developing and reworking. This time through, though, I’ve found that in trying to make them consumable by other people, I need to update them with command-line parameters (you know, like some sort of grown-up scripter).… [ Continue reading ]
Fix those IMCEAEX NDRs
I had a customer migrate some mailboxes a few weeks ago, and they’re now just getting some NDRs. Here’s a sample NDR:

To fix this, you can take the NDR that you receive, copy/paste it into this function, and then take the resultant decoded x500 address and add it back to the proxyAddress array for the recipient.… [ Continue reading ]
Updates to Office 365 Proxy PAC Generator
I wrote the original Proxy PAC tool for a customer almost a year ago, and since have added a lot of new functionality. Rather than updating my previous blog posts about it, I thought I would start a fresh thread. If you want some background on how Proxy PAC files work and how to distribute them to your users via GPO or WPAD, I would suggest taking a look at my posts dealing with those topics:
- Office 365 PAC File – https://bhr.62e.myftpupload.com/2015/11/16/office-365-pac-file/
Use AADConnect to add a Proxy Address
* UPDATE* After doing this originally, I decided to take a different route and write it back to the on-premises AD, so that way, the objects are synchronous. This post now reflects the updated content.
A few weeks ago, I had an issue where I needed to remove a proxy address from the proxyAddresses array of a user being synchronized to Office 365. … [ Continue reading ]
Quick and Dirty Array Subtraction – Otherwise known as “Just say NO to VLOOKUP”
Today, I had to subtract one list of users from another list of users. Some Excel wizards can do this with VLOOKUP, but I spend more time in trial-and-error with VLOOKUP and verifying my results that it would take to just do a CTRL-F for every object. … [ Continue reading ]
Disable Office 365 Groups Creation
Update: There are new cmdlets available for this task. This blog is for historical reference only. A new, updated process is available here (https://bhr.62e.myftpupload.com/2017/04/29/disable-office-365-groups-creation-redux/).
Office 365 Groups are a (somewhat) new feature that act both like a distribution list and a public folder or shared mailbox. … [ Continue reading ]
Testing for bad SMTP Addresses
While working on my latest project,  I encountered a significant number of objects with malformed SMTP addresses.  These appeared to have been objects that had been somehow manually modified over the years by directly writing to the proxyAddresses attribute in Active Directory, bypassing an API that would check for correctly-formatted addresses.… [ Continue reading ]
Use AADConnect to Populate Office 365 Usage Location
So, a million years and tens of thousands of lines of code ago, I wrote a script for a customer to populate the Office 365 UsageLocation property (Set-MsolUser -UsageLocation) with the ISO country codes from Active Directory.  In Office 365, UsageLocation is used to determine what features are available to your users.… [ Continue reading ]
Create an Opt-Out Tool for Exchange Online
Earlier this week, a question popped up on a distribution list for managing an opt-out process with Exchange Online. That wasn’t the first request I’ve seen for such a tool (in fact, I had my own customer asking for something similar). … [ Continue reading ]
How to Merge Duplicate Mail-Enabled User and Contact Objects
One of the first steps in preparing for an Office 365 migration is running a tool we provide called IDFix. The goal of this tool is to help minimize identity issues when migrating to the cloud. Most identity issues come down to two issues:
- Invalid characters in key attributes
- User objects with duplicate values in indexed attributes (duplicate objects)
The first issue is pretty easy to deal with–IDFix will identify objects with offending characters and the attributes where they exist, and will even make some recommendations. … [ Continue reading ]
Creating a Pinpoint DNS Zone
I saw an interesting question floating around a discussion alias earlier today–how to return different IP addresses for the same hostname from different DNS servers for users that are in different regions (for example, have DNS servers on the east coast return “1.2.3.4” for my.domain.com… [ Continue reading ]
Updating Remote Recipient Types on-Premises
During migrations from third-party platforms like Gmail or various POP3 providers or from hosted Exchange environments, we frequently see customers provisioning remote mailboxes for shared resources.
This works fine for three out of four recipient types. You can run New-RemoteMailbox for a regular user or specify a Type (Room or Equipment) to get the appropriate mailboxes. … [ Continue reading ]
Backup and Restore Distribution Groups from Exchange or Exchange Online
I’ve been involved in a lot of Exchange migrations over the years, to and from all sorts of different environments.
On a current engagement, I had to export a ton of cloud-managed distribution lists and their members from Office 365 / Exchange Online Dedicated and import them into Office 365 Multitenant. … [ Continue reading ]
Remove an unwanted ProxyAddress pattern from users via AADConnect
I had an interesting request from a customer the other day where they were synchronizing Active Directory into two disparate environments–Office 365 and another hosted Exchange environment. In their new Office 365 environment, they didn’t want any address proxies matching a particular pattern to be part of a user’s proxyAddress array–BUT–they also didn’t want to remove them from their on-premises accounts since they are being used by their other hosting environment as an application routing address.… [ Continue reading ]
Office 365 License Assignment
There is perpetually a lot of angst around licensing users for Office 365 workloads. Most of my customers over the years have wanted to ease into deployment, only enabling certain services at a time. Of course, as an evergreen service, we are always adding features, leading to new service plans to disable as you discover them.… [ Continue reading ]
