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

Mailbox Delivery Settings

From time to time, I run into environments where things are configured in “non-standard” ways.  Granted, we don’t have a lot of specificity or documentation around some attribute configurations because the default configuration has been tested by the people who created the software and works in almost every conceivable situation.  However, we do run into…

0

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…

7

Create a Transport Rule to Reject a Message When Both Domain Conditions Are Met

Today, I saw a question come up as to how to block a message when it’s sent to two different classes of users at the same time.  Let’s say you want to be able to send to John@domain1.com, Bob@domain2.com, and Jane@domain3.com (list 1) or to Mark@domain4.com, Sue@domain5.com, and Mary@domain6.com (list 2), but any time those…

0

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

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. If you only have to do one or two, the…

0

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…

6

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…

1