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 <your.name@domain.com>

$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
$GroupData | Export-Csv "C:\Temp\GroupOwners.csv" -NoTypeInformation

Disconnect-ExchangeOnline -Confirm:$false


OR:

$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
$GroupData | Export-Csv "C:\Temp\GroupOwners.csv" -NoTypeInformation

 
Disconnect-AzureAD


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