I just built a tool for a team of consultants to use, and some of the commands require elevation. Rather than relying on telling them it needs to be elevated, I wanted to be able to exit immediately if the session wasn’t so precious time wasn’t wasted.… [ Continue reading ]
Synchronizing objects between tenants
A few months ago, I developed a script/tool to use for a rather large customer divesting from an Office 365 Dedicated environment. As part of the exit, they wanted a contact object in their GAL for every user, contact, and distribution list that existed in the source Office 365 environment.… [ Continue reading ]
Finding Duplicate Objects in Active Directory
For those of you that have embarked upon the trek to Office 365, you’ve undoubtedly run (or at least heard of) IDFix. It detects and fixes a number of conditions that will cause the directory sync to report errors.
Today, I want to focus on a tool I wrote for a customer almost 2 years ago that addresses conditions not yet identified or remedied by IDFix. … [ Continue reading ]
PowerShell Random Password Generator
On a project earlier this year, I had to create random passwords for user accounts as part of a provisioning tool. Perpetually trying to find the fastest way to do something, I came up with a one-liner that you can use to create a random text string from the following ASCII printable characters:
!”#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~0123456789… [ Continue reading ]
Bulk Adding Calendars to a Google Account for Migration
In my last Google migration post, I talked about creating a MigrationWiz project with the correct resource and folder mappings to support a large-scale project.
One of the requirements is that the resource calendar *must* be opened/mounted on the calendar of the admin user that you’ll be using on the Google side. … [ Continue reading ]
Using MigrationWiz for Google Resources, Bulk Edition
*Update*
The script for this post has been updated with new parameters and requires a new version of the BitTitan PowerShell Module.
Tonight, while working with another consultant, we ran into a migration challenge–how to migrate Google resources and calendars to Office 365 shared mailboxes.… [ Continue reading ]
ActiveSync Device and User Report for Office 365 D, MT, and Exchange 2010+
Today, I had a customer ask me for an ActiveSync device report. Normally, this is a somewhat simple task (Get-Mailbox | Get-ActiveSyncDevice), but in a large environment with hundreds of domains representing different agencies or business units, that is kind of an unwieldy report to run (as well as including a lot of data for out-of-scope users).… [ Continue reading ]
Using a ScriptBlock to pass a variable into another variable
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 ]
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 ]
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 ]
