Get Group Owners - Custom Action

Modified on Thu, 15 Sep 2022 at 02:28 AM

If you are looking for a way to obtain a list of Owners for a given M365 Group / Teams Group based on the group guid/ Identity attribute. For use with a Dynamic mapping which can then supply owners of a Target Team to an email field for a Teams archive approval request.

In PowerShell:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Install-Module -Name ExchangeOnlineManagement -Verbose -Force

Update-Module -Name ExchangeOnlineManagement -Verbose -Force

Connect-ExchangeOnline -UserPrincipalName <>

$GroupData = @()
$Groups = Get-UnifiedGroup -ResultSize Unlimited -SortBy Name

$Groups | Foreach-Object {

#Get Group Owners
$GroupOwners = Get-UnifiedGroupLinks -LinkType Owners -Identity $_.Id | Select DisplayName, PrimarySmtpAddress
$GroupData += New-Object -TypeName PSObject -Property @{
GroupName = $_.Alias
GroupEmail = $_.PrimarySmtpAddress
OwnerName = $GroupOwners.DisplayName -join "; "
OwnerIDs = $GroupOwners.PrimarySmtpAddress -join "; "

$GroupData | Export-Csv "C:\Temp\GroupOwners.csv" -NoTypeInformation

Disconnect-ExchangeOnline -Confirm:$false


$Cred = Get-Credential

Install-Module -Name AzureAD -AllowClobber -Force -Verbose

Import-Module AzureAD

Connect-AzureAD -Credential $Cred | Out-Null
$GroupData = @()

Get-AzureADMSGroup -Filter "groupTypes/any(c:c eq 'Unified')" -All:$true | ForEach-object {
$GroupName = $_.DisplayName

$GroupOwners = Get-AzureADGroupOwner -ObjectId $_.ID | Select UserPrincipalName, DisplayName 

$GroupData += New-Object PSObject -Property ([Ordered]@{ 
GroupName = $GroupName
OwnerID = $GroupOwners.UserPrincipalName -join "; "
OwnerName = $GroupOwners.DisplayName -join "; "

$GroupData | Export-Csv "C:\Temp\GroupOwners.csv" -NoTypeInformation


In Coreview:


   "id": "9824084b-7738-4e28-bebf-a1f9aeb38822",

   "title": "Teams - Get Group Owners - V5",

   "description": "Lists the owners of a given M365 Group / Teams Group based on the Group guid / Identity attribute",

   "lastModified": "2022-02-04T20:36:22.1940000Z",

   "target": "O365Group",

   "tags": [],

   "vars": [


         "name": "GroupGUID",

         "type": "string",

         "isRequired": true



   "params": [


         "name": "Name",

         "type": "string",

         "isDefault": true



   "columns": {

      "Name": ""


   "version": 5,

   "statement": "param ([string]$Name, [string]$GroupGUID)\r\n\r\n$Group = Get-UnifiedGroup -Identity $GroupGuid | Get-UnifiedGroupLinks -LinkType Owner | Select PrimarySmtpAddress\n\n$GroupOwners = $Group.PrimarySmtpAddress -join ', ' \n\n$json= @\"\n{\n\"GroupOwners\": \"$GroupOwners\"\n}\n\"@\n\nreturn $json"


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article