Articles, views, and insights about the practical application of the Microsoft Graph APIs (including the Microsoft Graph PowerShell SDK) from Practical365.com
Latest Articles
Sometimes Microsoft 365 tenants need to store specific data for objects like users and groups. The Graph provides several extensibility options. This article describes how to define and use schema extensions to store information about the container management labels assigned to Microsoft 365 Groups.
Oversharing of information is a major concern in the AI era. This article describes how to write a script to report file sharing for OneDrive for Business accounts. The report details the files shared, the type of sharing link and access, and who can access the files. It's an example of using the Microsoft Graph PowerShell SDK to understand what's happening in a tenant.
The room mailbox statistics script has proven to be a popular script downloaded and used by many to analyze the usage patterns of room mailboxes. Recently, a reader pointed out that the Graph API request to fetch workspaces didn't work. Microsoft has changed the Places resource and the request now needed to run against the beta endpoint. All of which brought me to rewrite the script using the Graph SDK.
This episode of Practical Purview showcases some compliance controls that you should consider including in any provisioning solution. This is not an exhaustive list, but rather some key controls to consider.
Users receive all manner of notification messages from different sources. These messages are of no great value after a few days, so here's a script to find and remove messages to clean up mailboxes. All written using cmdlets from the Microsoft Graph PowerShell SDK.
Three years ago, we described how to create organizational contacts in user mailboxes with Graph API requests. In this iteration, we read the contacts from a Microsoft list and use Microsoft Graph PowerShell SDK cmdlets to update user mailboxes. The techniques explained in the article can be used in many scenarios.
Microsoft Lists are a powerful tool for end users to store and manage data stored in SharePoint Online sites. The Microsoft Graph PowerShell SDK includes cmdlets to work with Microsoft Lists and this article explains how to use the cmdlets to add new lists, add items to lists, retrieve data from lists, and remove items from lists.
Exchange Online mail folders and messages are a very important resource for Microsoft 365 tenants. This article discusses how to use cmdlets from the Microsoft Graph PowerShell SDK to retrieve information about mailbox folders and mail messages together with some performance tips for dealing with folders that store thousands of messages.
Microsoft released Graph APIs to read and assign sensitivity labels in 2023. At the time, it was difficult to work with the assignSensitivityLabel API. Now it's easier, and this article explains how to use PowerShell with the API to assign labels to files in a SharePoint Online document library.
On June 27, 2024, Microsoft launched the preview of the Entra PowerShell module. Built on top of the Microsoft Graph PowerShell SDK, the new module helps organizations that still have PowerShell scripts based on the now-deprecated AzureAD and AzureADPreview modules. If you're in that situation, the Entra module might help. But I recommend using the Microsoft Graph PowerShell SDK instead.
Over time, it's likely that some of the groups in a Microsoft 365 tenant will fall into either the category of memberless groups or ownerless groups. Microsoft has a solution to manage ownerless Microsoft 365 groups, but not the other group types supports by the Graph. This article explains how to find and report memberless groups using the Get-MgGroup cmdlet.
PowerShell Parallel Processing is a mechanism to speed the processing of large quantities of data. In this example, we discuss how to use parallel batches to fetch Entra ID account information using mailbox data to drive information retrieval. Although this is only a demonstration of a technique, it might help those who must process thousands of mailboxes or accounts and would like to do so more quickly.