Azure App Expiry Monitoring with Power Automate & Graph API

Have you ever had a service go down because an Azure App Registration secret expired without anyone noticing? Client secrets and key certificates come with expiration dates, and failing to renew them in time can lead to service disruptions and security vulnerabilities. In this post, I’ll walk you through a super efficient Power Automate flow that monitors your Azure App Registrations for expiring keys using the Graph API and XPath — without the nested loops and API overhead that most solutions rely on. ...

31 August 2023 · 9 min · DamoBird365

Service Health and Message Centre via Power Automate

Want to keep your organisation informed about Microsoft 365 service health without constantly checking the admin centre? In this post, I’ll show you how I used Power Automate with an Azure App Registration and the Graph API to pull service health and message centre data into a SharePoint List, Teams alerts, and more. We’ll start by creating an Azure app registration and using the Graph API to bring data into Power Automate. From there, you can save this information to a SharePoint List, publish it to your organisation, build a Power App, or set alerts for degraded service health via Teams or email. ...

31 January 2023 · 5 min · DamoBird365

Add user to Distribution List

Ever since Microsoft removed the ability to add users to Exchange Distribution Lists via the Graph API, Power Automate users have been stuck. In this post, I’ll walk you through a workaround using PowerShell and Azure Runbooks to get distribution list management back into your flows. It’s been over 12 months since I wrote my blog post Add members to a distribution list – Power Automate where initially it was possible to add members directly. That functionality was removed by design and has never made a comeback. Fortunately, I came across PowerShell commands to both add and remove users from a distribution group — and we can bring this to an Azure Runbook. For more details on the Graph API limitation, see Working with groups in Microsoft Graph. ...

9 January 2023 · 5 min · DamoBird365

Disable Microsoft Forms via Power Automate

Have you ever needed to automatically disable a Microsoft Form — say, when an event reaches capacity? In this post, I’ll show you how to programmatically close a form using Power Automate with a single HTTP action, and we’ll explore some practical use cases for this technique. Why Disable a Form Automatically? It is technically possible to disable a Microsoft Form from Power Automate. Why would you want to do this? Maybe it’s time limited - ok sure you can specify an end date via the existing UI. But what if that date or time was to be dynamic? ...

17 September 2022 · 2 min · DamoBird365

Restore deleted Flows as an Admin

Ever had a user accidentally delete a critical Power Automate flow? Until May 2022, your only option was to raise a support call with Microsoft — but that all changed when the Restore-AdminFlow cmdlet was released. In this post, I’ll walk you through restoring deleted flows with PowerShell and show you how to build a self-service solution using Azure Runbooks, Power Automate, and Power Apps. There are native actions in Power Automate for adminstering flows but there is no current timescales for releasing an action to restore flows directly. If you were wondering if it was possible to restore flows from Power Automate or Power Apps using the Platform, then I have a solution for you - Azure Runbooks. I have a blog post showing you how I built a Runbook to change the sharing options of SharePoint using Power Automate. ...

15 May 2022 · 6 min · DamoBird365

Add members to a distribution list - Power Automate

Managing exchange email distribution lists manually is tedious, especially during onboarding. In this post, I’ll show you how to add members to a distribution list using Power Automate — and how to check if a user already exists. Whether you’re feeding this from a Power App or Microsoft Form, it’s easily achieved with a single action. Update January 2023 I’ve written a new bog post detailing how this can be achieved with PowerShell and an Azure Runbook. Check it out here Add user to Distribution List - DamoBird365 ...

11 October 2021 · 4 min · DamoBird365

Teams External Guest User Cannot Access Files

Invited an external guest into your Microsoft Team only to find they can’t access any files? You’re not alone — this is one of the most common SharePoint and Teams issues I come across. In this post, I’ll show you exactly why it happens and how your SharePoint admin can fix it, including a PowerShell script for those tricky private channel scenarios. “We can’t get your files. We’re working on getting them back” ...

8 May 2021 · 4 min · DamoBird365

Looking Fantastic - Basic Housekeeping

Ever come back to your Power Automate environment and have no idea what half your flows do? A little housekeeping goes a long way. In this quick tip, I’ll share my naming convention for keeping flows organised and easy to find. Keeping things nice and tidy The Problem with Default Names It sounds pretty obvious really, you build a solution and you give it a meaningful name or next time you return to your environment you cannot remember what on earth your automatically named flow does or what it was for? ...

2 March 2021 · 2 min · DamoBird365

PowerShell Get List of Members from O365

Ever needed to quickly pull a list of members from your Microsoft 365 Groups and export them? In this quick post, I’ll share a simple PowerShell script using the Get-UnifiedGroup cmdlet that does exactly that — filters your groups and dumps all members into a tidy CSV file. The PowerShell Script Use the Get-UnifiedGroup CMDLet and if your sites are prefixed like mine, filter on the DisplayName. $CSVPath = "C:\Temp\AllGroupMembers.csv" Connect-ExchangeOnline $list=Get-UnifiedGroup -Filter "DisplayName -like 'SitePrefix*'" foreach ($Group in $list) { #Get Group Members and export to CSV Get-UnifiedGroupLinks –Identity $Group.Id –LinkType Members | Select-Object @{Name="Group Name";Expression={$Group.DisplayName}},` @{Name="User Name";Expression={$_.DisplayName}}, PrimarySmtpAddress | Export-CSV $CSVPath -NoTypeInformation -Append } Output The above script will return a CSV. ...

24 February 2021 · 1 min · DamoBird365

Changes to Stream Storage Location

If you rely on Microsoft Stream for storing meeting recordings, heads up — the default storage location is changing. Historically, recordings would be available via the Stream portal, but for some and soon for all, Stream recordings will be diverted to OneDrive for Business. Details of which are here. Reverting the Storage Location with PowerShell If this happens to affect your business and you wish to revert back to or check the setting of the default storage location for your Stream videos, please try out the following PowerShell. ...

19 February 2021 · 1 min · DamoBird365