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