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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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:...

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...

Date: 08/09/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,...

Date: 07/24/2018

Next>