Author: Tony Redmond

Latest Articles

Practical Graph: Creating Dynamic Microsoft 365 Groups without Entra P1 Licenses

Dynamic Microsoft 365 Groups come with many advantages, but they also require Entra P1 licenses. This article explores how to create and maintain a DIY version of dynamic Microsoft 365 groups using the Microsoft Graph PowerShell SDK and Azure Automation. At the end of the day, the principle is proven, but maybe it's best to pay for the licenses.

August 13, 2025

Practical AI: Copilot in Outlook Brings AI to Email Filtering

Prioritize My Inbox is a new AI-powered mail filtering technology available in the new Outlook, OWA, Outlook (classic), and mobile clients. Unlike traditional inbox rules, Copilot's LLMs and access to Graph data makes Prioritize My Inbox much more aware of what a user does and what's important to them. Instructions allow users to tailor how filtering happens, but most is done by the AI.

August 4, 2025

Practical Graph: Using Purview eDiscovery APIs in App-Only Mode

Most eDiscovery work is done interactively, but a use case exists for working with eDiscovery cases through apps, such as populating a large review set. It’s possible to configure an Entra ID app to work with the eDiscovery APIs in app-only rather than delegated mode, but only by using an Exchange service principal to add the app to the eDiscovery manager role group.

July 23, 2025

Teams Channels Get Threaded Layout

Many Teams users love to use group chats as a way to get work done. Group chats are effective, but the information shared in chats ends up in personal OneDrive accounts. To help switch people back to channel conversations, Teams has a new threaded layout to make conversations behave much like chats. The new layout works well for some channels but not for others.

July 15, 2025

Practical Graph: Tracking Critical App Actions Through Audit Events

App management audit events are captured when changes are made to Entra registered and enterprise apps. Critical app management audit events should be closely monitored to ensure that permissions are used properly and attackers haven't attempted to penetrate the tenant to extract data. This article explains how to find and analyze audit data for some critical app management audit events and run the code as an Azure Automation runbook.

July 8, 2025

Practical Graph: Assigning Sensitivity Labels to SharePoint Files with the PowerShell SDK

A new Set-MgDriveItemSensitivityLabel cmdlet makes it easier to assign sensitivity labels in PowerShell scripts. However, the cmdlet does not get around the restriction imposed by Microsoft on using metered APIs. Apps still must be registered as Azure resources before scripts can run the cmdlet. It's easy to understand why, even if it seems strange at first.

June 30, 2025

Practical Purview: Removing Old Items from User Calendars

A reader wants to remove all calendar items over a certain age. Compliance purge actions seem like a good way to do this, but there's a problem that needs to be fixed. eDiscovery purges can do the job, but only if you have eDiscovery Premium. And then there's Graph APIs to consider. All in all, many ways exist to purge calendar items.

June 9, 2025