Undocumented Features

Update to the Set-UPNWithMailAddress Script

I hadn't touched this one in a while, but a recent request from a customer had me checking in on...

Author: Aaron Guilmette Date: 04/26/2019

DLP for Bitcoin Addresses

One of the up-and-coming combination phish-ransom attacks is to trick the mark into thinking that...

Author: Aaron Guilmette Date: 04/26/2019

Bulk Converting Office 365 Groups to Teams

This week, while working with one of my peers, a request came in to bulk convert all Office 365...

Author: Aaron Guilmette Date: 04/26/2019

Creating a Teams "New Channel" notification

One of my customers recently asked for a solution to checking a particular Microsoft Team multiple...

Author: Aaron Guilmette Date: 04/26/2019

Hashmaker, Hashmaker, Make Me A Hash

While contemplating methods to determine whether a file had changed or been updated, I thought that...

Author: Aaron Guilmette Date: 04/26/2019

Update to the AAD Network Testing Tool

Hey, all!  One AAD tool update deserves another! Every so often, I check in to make sure I'm keeping...

Author: Aaron Guilmette Date: 04/26/2019

Update to the AAD Connect Advanced Permissions tool

It's been a while since I've updated this popular tool, and the need was brought to my attention by...

Author: Aaron Guilmette Date: 04/26/2019

Update to Get-SCCDataExport

I've been tinkering around a little with this, hoping to bring some better updates (so maybe you can...

Author: Aaron Guilmette Date: 04/26/2019

WhoAmI for Office 365

If you've ever struggled to find out who your current session is logged in as when you connected to...

Author: Aaron Guilmette Date: 02/21/2019

Calculating your Daily Export for the Security & Compliance Center

One of the lesser-known boundaries of Office 365's Security & Compliance Center is that we only...

Author: Aaron Guilmette Date: 02/21/2019

Export User GAL Entries from Outlook

This morning, looking for an answer to something, I stumbled across a question that seemed easy...

Author: Aaron Guilmette Date: 02/21/2019

Update to Forwarding Address Export Import Tool

Every now and then, I get a ahead of myself. I've updated a typo in the script on the gallery, a...

Author: Aaron Guilmette Date: 02/21/2019

Getting Around the Basics of Azure Automation for Office 365

One of the the things that we've learned about the cloud over the past few years is that you still...

Author: Aaron Guilmette Date: 02/21/2019

Generate a list of mailboxes whose litigation hold duration is less than a week away

While many people use Office 365 retention policies as part of their data governance strategy, there...

Author: Aaron Guilmette Date: 02/21/2019

Update to the WipeExchangeOnlineMailbox tool

Who knew you'd need an update to a tool meant to delete things? After working with a partner today...

Author: Aaron Guilmette Date: 02/21/2019

Update to the Get-UserHoldPolicies Tool

A new year, a new update for Get-UserHoldPolicies!  Woo! I stumbled across some additional...

Author: Aaron Guilmette Date: 02/21/2019

Searching the Office 365 Unified Audit Log for Specific Activities, Sites, and Users

Last week, I was working with a large government customer in a consolidated tenant (read: all...

Author: Aaron Guilmette Date: 02/21/2019

Iterating hash values to a log file

While working on my last script, I was trying to figure out the best way to write the values stored...

Author: Aaron Guilmette Date: 01/15/2019

Migrating from Exchange Online eDiscovery and In-Place Hold to the Security & Compliance Center

One of the issues that some of my larger customers have been dealing with is the lack of tooling and...

Author: Aaron Guilmette Date: 01/15/2019

Checking for compromised email accounts

Yesterday, I participated in an escalation for a customer where one or more users had been...

Author: Aaron Guilmette Date: 01/15/2019

Alerting on OneDrive Deleted Item Activity

I had a customer recently raise some questions about how to provide further enhancements and...

Author: Aaron Guilmette Date: 01/15/2019

SharePoint Online and OneDrive for Business Custom Sharing Controls

Today, we're going to explore two relatively new sharing controls in SharePoint Online (and, by...

Author: Aaron Guilmette Date: 12/10/2018

Add legacyExchangeDN as x500 proxy address from a remote forest

The other day, on one of the forums, I came across an issue that I also had with one of my customers...

Author: Aaron Guilmette Date: 12/10/2018

Updated Tool Roundup!

Hi! It's a day ending in "y," which means it's a good day to update a script! Today, while on-site...

Author: Aaron Guilmette Date: 12/10/2018

Migrate-EOPSettings now does ATP!

ATP! ATP! At long last, I've made a first pass at updating the Migrate-EOPSettings script to now...

Author: Aaron Guilmette Date: 12/10/2018

Delegating Reporting Access for Exchange Online

Earlier this week, I had a request for assistance with delegating reporting features in Exchange...

Author: Aaron Guilmette Date: 12/10/2018

Find Whitelisted Users, Domains, and IPs in Office 365

If you've ever asked anyone how to do virtually anything, the answer is usually "It depends." Just...

Author: Aaron Guilmette Date: 12/10/2018

Forwarding Address Import and Export

Four score and many moons ago, I was working on one of my first projects in Microsoft Consulting...

Author: Aaron Guilmette Date: 11/13/2018

Fixing Office 365 Anonymous Group Write-back and External Delivery

Yes, Hell has frozen over. The cows have come home. The lady of size has sung. I have come up with a...

Author: Aaron Guilmette Date: 11/13/2018

Splatbuilder Wrapper

This week, I was working on a project that spawned a lot of ideas for posts.  The project involves...

Author: Aaron Guilmette Date: 11/13/2018

Sync Custom Attributes to Office 365 for Group-based Licensing

This feature is an "oldie but goodie" that my customers are starting to ask questions about as they...

Author: Aaron Guilmette Date: 11/13/2018

Adding OneDrive Locations to an Existing Retention Policy

Yesterday, while working with a customer, I was asked if there is a way to programmatically add...

Author: Aaron Guilmette Date: 11/13/2018

Update to the Export-CalendarProcessing tool

As luck would have it, I have one more update to deliver today. One of my peers (shout out to Mike...

Author: Aaron Guilmette Date: 11/13/2018

Updated Tool Roundup!

Hi! It's a day ending in "y," which means it's a good day to update a script! Today, while on-site...

Author: Aaron Guilmette Date: 11/13/2018

Thanks for Playing!

I was so excited to see this notification in the TechNet Gallery today when I logged in: Thanks to...

Author: Aaron Guilmette Date: 11/12/2018

AAD Connect, a dedicated resource forest, a custom connector, and a bunch of transform rules: a GalSync story (Part 2)

In part 1 of our adventure, we built an Azure AD lab to support configuring AAD Connect to work as a...

Author: Aaron Guilmette Date: 11/12/2018

AAD Connect, a dedicated resource forest, a custom connector, and a bunch of transform rules: a GalSync story (Part 1)

A few years ago, I worked with one of my close consultant peers to build a GALSync-style solution...

Author: Aaron Guilmette Date: 11/12/2018

Update to the Create-LabUsers tool

While working on my last mini-series, I utilized my Create-LabUsers tool to automate the creation of...

Author: Aaron Guilmette Date: 11/12/2018

Header, header, wherefore art thine fields?

Today, I got it in my head that I wanted to create a script that would accept CSV input.  In so...

Author: Aaron Guilmette Date: 11/12/2018

SharePoint Online and OneDrive for Business Custom Sharing Controls

Today, we're going to explore two relatively new sharing controls in SharePoint Online (and, by...

Author: Aaron Guilmette Date: 11/12/2018

Add legacyExchangeDN as x500 proxy address from a remote forest

The other day, on one of the forums, I came across an issue that I also had with one of my customers...

Author: Aaron Guilmette Date: 11/12/2018

Update to the AAD Connect Remove Proxy Addresses Script

This week, while working with one of my customers in a custom Office 365 deployment, I had the...

Author: Aaron Guilmette Date: 09/02/2018

We’re moving!

After 4 glorious years of Technet blogging, I am moving.  The TN blog system is changing, and I’m...

Author: Aaron Guilmette Date: 08/30/2018

Creating Scoped DLP rules with Custom Sensitive Information Types

A few weeks ago, I put out a series of posts on creating and using custom sensitive information...

Author: Aaron Guilmette Date: 08/24/2018

Looky, looky! Custom sensitive information types with even more customitivity!

So, of course, as soon as I finish up posting a few entries (here and here), we go and release a new...

Author: Aaron Guilmette Date: 08/14/2018

Update to the AAD Connect Advanced Permissions Tool

Woo! A day of updates!  I've made  a few updates to this tool, so hopefully you'll find them useful:...

Author: Aaron Guilmette Date: 08/12/2018

Searching for Sensitive Information Types

Over the course of your Office 365 administration duties, you may be called to locate data matching...

Author: Aaron Guilmette Date: 08/12/2018

Sensitive Information Types--now with more sensitivity!

UPDATE: The Technet Gallery link for this post has been updated. So, this is an entry that has been...

Author: Aaron Guilmette Date: 08/09/2018

Creating a function or script with PowerShell Dynamic Parameters

This week, while contributing code to a collaborative project, I wanted to up my game.  A lot of my...

Author: Aaron Guilmette Date: 07/30/2018

Update: AAD Connect Network Test Tool

Update (7/24): I updated this since the last revision, so if you downloaded it prior to 7/24/2018,...

Author: Aaron Guilmette Date: 07/24/2018

Next>