The Challenge of Efficiently Managing Multiple M365 Tenants As a Managed Services Provider, one of the biggest challenges we face is efficiently managing dozens, if not hundreds, or even thousands...
Mass creating automation account schedules
Automation accounts in Azure are great, they let you run any arbitrary powershell code in the cloud. But they have a few frustrating aspects, one of which is the tediousness of creating schedules. ...
Disabling self-service licenses (in bulk!)
As you may be aware users can self-service purchase licenses. This is a feature that is turned on by default, and very annoyingly, one that has to be turned off per eligible product (and Micrpsoft ...
Scripted invites to a Static Web App (such as CIPP)
This is going to be a short one. Somebody on the CIPP discord asked about scripted invites to a CIPP instance the other day and I put this together. His use case didn’t fit but it would be a shame...
GDAP - The most common mistakes
GDAP was new to everyone, so people made a lot of mistakes during implementation. Here’s a list of all the common mistakes I’ve seen people make. There should be a witty joke abput permissions he...
PSDKit, or how to convert JSON data to PowerShell code
If you’re working with APIs and PowerShell you’ve no doubt ran into JSON data before. JSON is great because it is an open data interchange format that is both human and machine-readable. You can re...
Using CIPP to break back into your locked out customer tenant (Conditional Access)
It shouldn’t happen, but we know it does. On occasion you or a colleague will lock everyone out of a tenant after fiddling with a Conditional Access policy. What follows is a painful process of goi...
Breaking out of OOBE
Recently I had a need to break out of the OOBE phase of the Windows setup and start a script. This is possible out of the box. You can use the Shift + F10 key combo to open a cmd window. But that...
Dynamic graph filter generation
Requesting and processing data can be costly when done carelessly. You could make a request to the API for all users but that may well take multiple paging requests before you get them all. Instead...
Leveraging your CIPP-SAM app
Maybe you’ve recently deployed CIPP, maybe you’ve been working with it for a while. Either way its good to understand that the core of CIPP is the CIPP-SAM app, this app gets created in your tenan...