Articles, views, and insights about the practical application of the Microsoft Graph APIs (including the Microsoft Graph PowerShell SDK) from Practical365.com
Latest Articles
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.
The unified audit log is the source of a lot of information about a Microsoft 365 tenant. The Search-UnifiedAuditLog cmdlet is available to search the audit log and now we have the AuditLog Graph API. This article explains how to use the new API to query and retrieve audit records from the log.
When you're new to Graph API requests, you might not know pagination and end up retrieving less data from queries than is available. In this article, we explain how to use pagination to retrieve data using Graph queries and SDK cmdlets.
In the past, we've described how to use PowerShell to report tasks in Planner plans. This article completes the circle by discussing how to create Planner tasks. The scenario used is synchronizing Microsoft 365 message center notifications to create tasks in a target plan. There are some interesting issues to discuss, like how to assign a label to a task.
In this blog, James Yip reviews how to use PowerShell to examine details of managed devices and installed apps on endpoints.
The fallout from the Midnight Blizzard attack against Microsoft continues as Microsoft takes action to harden the security of its own and customer tenants. One step is to retire the EWS Application Impersonation role. This will happen in February 2025 ahead of the retirement of Exchange Web Services in October 2026.
In this blog, Andy Scheider deep dives into GitHub Copilot and how it can be used to upgrade PowerShell Scripts to the Microsoft Graph PowerShell SDK.
A key aspect of a well-managed Microsoft 365 environment is to ensure that SharePoint sites are removed when they are no longer needed. In this blog, Sean McAvinue explores how to combine relatively basic PowerShell and Azure Automation skills with Power Automate to create a clean, robust way to manage the lifecycle of SharePoint sites in your Microsoft 365 tenant.