Right before sending a customer the link for the tool, I decided to test it and noticed that I encountered an unexpected credential prompt. I updated the parameter name, and then added a new feature as well–a test to see if your tenant has the correct licensing to enable Password writeback. … [ Continue reading ]
Update to the OneDrive for Business Admin Tool
Today, I pressed in a little bit on exploring CSOM–at least as it relates to the OneDrive for Business Admin tool.
One of my peers asked if there was a command that we could use to check to see if a site had been put on a retention hold. … [ Continue reading ]
Update to PwnCheck script
This afternoon, while working with a colleague, I was alerted to a customer that appears to have the same 6-character password set for every user, which honestly, I feel like violates the very notion of a password. They’re not currently in Office 365 (or even Active Directory), but the risk is the same:
Users tend to use the same passwords everywhere.… [ Continue reading ]
DLP for Bitcoin Addresses
One of the up-and-coming combination phish-ransom attacks is to trick the mark into thinking that you’ve got access to their data, and then get them to send money to a Bitcoin address to protect them from data leakage. You can create a DLP rule in the Office 365 Security & Compliance Center (or an Exchange Online transport rule) to try to combat this.… [ Continue reading ]
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 the AAD Connect Network Test Tool as fresh as I can. I’ve made a few changes to the way it works (hopefully which you all think is for the better). … [ Continue reading ]
Update to Get-SCCDataExport
Update: The link for the tool has been updated to https://www.powershellgallery.com/packages/Get-SCCExportDataSize/.
I’ve been tinkering around a little with this, hoping to bring some better updates (so maybe you can see who is generating your data exports and go smack them around).… [ Continue reading ]
WhoAmI for Office 365
If you’ve ever struggled to find out who your current session is logged in as when you connected to Office 365, here’s a tidbit to shed some light on it:
(Get-PSSession |?{$_.ComputerName -like “*outlook.com”})[0].RunSpace.ConnectionInfo.Credential.UserName

You can also use RunSpace.OriginalConnectionInfo.Credential.UserName. … [ Continue reading ]
Calculating your Daily Export for the Security & Compliance Center
Update: New link for export script: https://www.powershellgallery.com/packages/Get-SCCExportDataSize/
One of the lesser-known boundaries of Office 365’s Security & Compliance Center is that we only allow 2TB per day export volume. When we talk about exports, we’re talking about the idea of taking content that has been identified via a content search mechanism (content search, eDiscovery case search, etc) and then staged for download.… [ Continue reading ]
Export User GAL Entries from Outlook
This morning, looking for an answer to something, I stumbled across a question that seemed easy enough to fix: Is it possible to export the GAL from Outlook if I don’t have access to a server?
Yes, yes it is. Since we have the Power of Grayskul–err, PowerShell, at our disposal, we can manipulate Outlook to return this data to us. … [ Continue reading ]
Update to the Get-UserHoldPolicies Tool
A new year, a new update for Get-UserHoldPolicies! Woo!
I stumbled across some additional information today regarding deciphering hold policies for mailboxes while troubleshooting another issue and decided to update my Get-UserHoldPolicies tool to reflect it.
The core pieces that I added:
- Identifying Skype policies (as prefaced by sky in the InPlaceHolds property of a mailbox)
- Identifying excluded mailbox policies (as prefaced by -mbx in the InPlaceHolds property of a mailbox)
- Disposition action for items at the end of a retention period:
- Delete only
- Do nothing after retention period
- Delete after retention period
You can see a few of the new options here. … [ Continue reading ]
Find Allowed 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 as there is no wrong way to eat a Reese’s Peanut Butter Cup and more than one way to skin a cat, so it frequently is with technological tasks. … [ Continue reading ]
Delegating Reporting Access for Exchange Online
Earlier this week, I had a request for assistance with delegating reporting features in Exchange Online to non-administrative users. This is a frequent topic of discussion when it comes to compliance and security officers validating that systems are not being misused by unauthorized persons.… [ Continue reading ]
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 with a customer and running my AAD Connect Permissions script, I noticed that the logging output wasn’t as helpful as I wanted it to be.… [ Continue reading ]
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 extension, OneDrive for Business). The two options we’re going to look at are located inside the SharePoint Admin Center (https://<tenant>-admin.sharepoint.com) under Sharing:

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 doing, I wanted to make sure the CSV passed some sort of validation so that I didn’t end flooding a screen with errors, because nobody likes that.… [ Continue reading ]
