Table of Contents
Use the Microsoft Graph PowerShell SDK to Analyze Service Update Messages
In November 2020, I wrote an article about the number of Microsoft 365 message center posts about new features that ended up being delayed. At the time, 29.27% of message center posts needed to adjust their published date for feature availability. Being of a curious nature, I wondered if Microsoft is better at predicting when they can deliver software across the spectrum of Microsoft 365 applications.
The code I used in 2020 is now obsolete. Microsoft moved the service communication API from the old manage.office.com endpoint to the service communications Graph API and access to message center posts is through the service update message resource. Because the service communications API is a full-fledged Graph API, cmdlets in the Microsoft Graph PowerShell SDK are available to work with message center posts. For instance, the Get-MgServiceAnnouncementMessage cmdlet retrieves message center posts. This command shows how to retrieve posts for the last seven days:
$SevenDaysAgo = (Get-Date).AddDays(-7) $CheckDate = (Get-Date($SevenDaysAgo) -format s) + "Z" [array]$MCPosts = Get-MgServiceAnnouncementMessage -filter "StartDateTime ge $CheckDate"
Adding the “Z” to the sortable date generated by the Get-Date cmdlet is important for the filter to work.
Updating the Code
The code written in 2020 uses a registered Entra ID app to obtain an access token and fetch the message center posts. Updating the script involved:
- Removing the code to obtain an access token and replacing it with a call to the Connect-MgGraph cmdlet specifying the ServiceMessage.Read.All scope (permission).
- Run the Get-MgServiceAnnouncement cmdlet with the All parameter to fetch all available message center posts.
- The data returned for message center posts using the service communications Graph API differs from that returned by the old API. Some adjustment was necessary in the script to update property names and the content returned for some properties.
- Addition of some code to calculate the percentage of delayed feature announcements. In 2020, this was done using Excel. The basic test for a delay is the presence of the string “(Updated)” in the title for a message center post. No attempt is made to compute the length of the delay because message center posts don’t contain a structured property with this information. Instead, information about delays is conveyed in the text. For example, “We will begin rolling out in mid-September 2023 (previously late August) and expect completion by mid-February 2024 (previously late January).”
Comparing Results
In 2020, the results looked like this:
Notifications Updates Percent updated Teams 58 22 37.93% SharePoint 37 14 37.84% Exchange 30 9 30% Yammer 10 4 44.44% Intune 8 0 —- Power Apps 5 0 —-
On February 5, 2024, the Get-MgServiceAnnouncement cmdlet fetched 552 message center posts for my tenant. This is a higher amount than in 2020 because the tenant subscriptions now include some Microsoft 365 E5 licenses covering more apps. The number of message center posts available in a tenant vary depending on the active subscriptions that exist within the tenant.
Figure 1 shows the results. Nearly a third of all message center posts are delayed. Teams remains the workload that issues most message center posts (83), but its performance in terms of avoiding delays has worsened from 38.93% to 57.24% This might be due to the transition from the classic Teams client to the new Teams client (due to be complete by the end of March), or it might be that the Teams product managers have real difficulty in predicting when software might be ready for deployment.
Some message center posts cover multiple workloads and it’s hard to know where the responsibility lies for a delay. The data is therefore indicative rather than definitive. To be sure about where delays lie, you’d need to examine the text of each message center post and extract and collate the details.
You can download the updated script from GitHub.
Easier to Work with Message Center Posts
Being able to work with service communication data through Microsoft Graph PowerShell SDK cmdlets makes the information more accessible than before. Some of the improvements introduced by Microsoft for message center posts since 2020 aren’t available. The relevance property appears to have disappeared from the Microsoft 365 admin center and the number of active users for a workload, which does show up in the message center, is missing from the properties returned by the SDK cmdlet. But the rest of the information you might want is available and ready to be sliced and diced as you want.
Learn how to exploit the data available to Microsoft 365 tenant administrators through the Office 365 for IT Pros eBook. We love figuring out how things work.
This is really interesting, it’s pretty amazing how often things get delayed/changed.
We have been pulling all the Roadmap and Message Center Messages into an Azure DB for about 6 months and see similar percentages over the larger data set.
I also noticed relevance has gone from the Message Center UI. Microsoft has delated rolling the feature out, update on the roadmap (but, ironically, not in the message center, or I missed it 😂). The paused the rollout in October 2023 and no update since then. https://www.microsoft.com/en-gb/microsoft-365/roadmap?featureid=96289