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 ]
Remove a user’s oldest ActiveSync device
A few weeks ago, I saw something come up for a peer that needed a way to manage the maximum number of ActiveSync devices that a user had connected in Office 365. Using only native Exchange policies, we can’t do that (MDM solutions solve this problem by manning the Exchange ActiveSync quarantine). … [ Continue reading ]
Sign an exported certificate from an F5
I’ve run into this delightful scenario a few times–the network team generates CSRs and certificates for the environment, and since they want to do SSL termination on their network devices, complete the certificate process there. When you ask for an export of the certificate from, say, an F5, they will just give you the unsigned certificate–so that when you import it into your server, you end up with something unusable, since it has no private key.… [ Continue reading ]
Deploying the Office 365 Proxy PAC to manage your users
Several months ago, I released a tool (the Office 365 Proxy Pac Gen) to generate a Proxy Automatic Configuration file that can be used to bypass local proxy servers for Office 365 services. I also wrote a blog (Office 365 PAC file) on using the tool.… [ Continue reading ]
Using XML to Backup and Restore Office 365 Settings
Frequently, I am asked to make changes to a customer's environment. I'm a belt and suspenders kind of guy, so my backups have backups. At any rate, normally when I am performing changes in a tenant (or Exchange on-premises environment, for that matter), I make two sets of backups–one by piping a Get-cmdlet to Export-CSV (so I have a readable copy), and one by piping the same Get-cmdlet to Export-Clixml (so I have a way to set the nodes as parameters and import them back).… [ Continue reading ]
Customizing the Windows PowerShell Console
Another blog on customizing the PowerShell console? Really?
Yes. This is actually what I use on a day-to-day basis as a consultant managing many projects at once. I find that I’m usually running various PowerShell sessions concurrently and having to keep which one is which can be difficult without having to stop and check which server or Office 365 tenant I’m connect to, or what type of activity I’m performing.… [ Continue reading ]
Extending Active Directory Users and Computers with Custom Attributes
If you’ve ever wanted to add columns for unlisted attributes to Active Directory Users and Computers, you’ve been out of luck without editing the displaySpecifiers manually.
Until I had enough of it.
How does it work? I’m so glad you asked. … [ Continue reading ]
Disconnect all PSTs from the Default Outlook Profile
Today, one of my consultant peers posed a problem to me: a customer wanted to import all PSTs into Office 365 archives, but in order to do that, had to disconnect them from the user’s default Outlook profile.
Fortunately, you can expose a number of methods and properties from the Outlook ComObject inside PowerShell, so this wasn’t terribly difficult (although, I’m still trying to figure out how to do this against all Outlook profiles configured).… [ Continue reading ]
