Copy Get-History to Clipboard

I’ve been working on a little project, and the need to retrieve the last n number of commands I’ve executed in PowerShell has become a tedious task.  As you’re (hopefully) aware, Get-History is a great cmdlet to review exactly how you got to where you are.  You can then combine that with the Clip cmdlet…

4

Disable Office 365 Groups Creation: Redux

Several months ago, I wrote a blog on Disabling Office 365 Groups.  It seems as though we couldn’t leave well enough alone.  Such is a price of progress. I got a new laptop a few weeks ago, and then found myself in the position of helping out a few colleagues this week.  One of the tasks…

20

Troubleshooting Mailbox Migration Error “You can’t use the domain because it’s not an accepted domain for your organization.”

While migrating users via MRS between organizations (especially to Exchange Online), a pretty common error that I run across is: You can’t use the domain because it’s not an accepted domain for your organization. This error is generated because the MailUser object of the user you’re attempting to migrate has a proxy address attached to…

12

Removing Proxy Addresses from Exchange Recipients

I saw a request come through the other day for a method to remove unwanted proxy addresses for contacts.  I’d had some code sitting around from a project a few years back and decided to freshen it up, and maybe add some newer tricks. So, the original idea was to select a bunch of users…

4

Migrating EOP Settings Between Tenants

I find myself currently writing tools to both support my and other organization projects, as well as looking for ways to refine existing tools and scripts, make my life easier for future migrations, and provide additional resources to the community to help other customers more successfully use our products. Today’s tool fulfills all of those…

0

Checking for an elevated PowerShell prompt

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. First, we need to figure out who the…

1

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. At the time, GALSync wasn’t an…

0

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…

7

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 To…

5

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.  Again, a simple…

1