PowerShell Script for Exporting Members for a List of Security Groups from AAD

Contributor

Simply provide the name with which your group starts. e.g. FP3.

The normal limit on returned results is 100 objects, which has been increased to max or "All $True" in this case.

Connect-AzureAD
$PathCsv = "C:\GroupMembers.csv"
$GroupName = Read-Host -Prompt "Enter group name to search"
$groups = Get-Azure
ADGroup -SearchString $GroupName -all $true
$groupCount = $groups | measure
$count = $groupCount.Count

$groupMembers = foreach($group in $groups){
$GroupId = $group.ObjectId
$GroupName = $group.DisplayName
Write-Progress -Activity "No of Groups found: $count`
Fetching members for GroupName: $GroupName"
Start-Sleep -Milliseconds 200
Get-AzureADGroupMember -ObjectId $GroupId -All $true | Select-Object -Property @{Name = 'GroupName'; Expression= {$GroupName}}, DisplayName, UserPrincipalName
}

$groupMembers | Export-Csv -Path $PathCsv -NoTypeInformation -Force

 

Original script:

PowerShell script to Export All Azure AD groups Starting with "ABC" name and membership of their gro...

1 Reply
Below is the updated script based on feedback:

Here is an updated script, It will now only look for the Groups starting with input value.
In this case just key in FP3 and it will only bring groups that begin with FP3.

Connect-AzureAD
$PathCsv = "C:\temp\GroupMembers.csv"
$GroupName = Read-Host -Prompt "Enter group Displayname to search"
$groups = Get-AzureADGroup -All $true | Where-object {$_.DisplayName -like "$GroupName*"}
$groupCount = $groups | measure
$count = $groupCount.Count
$groupMembers = foreach($group in $groups){
$GroupId = $group.ObjectId
$GroupName = $group.DisplayName
Write-Progress -Activity "No of Groups found: $count`
Fetching members for GroupName: $GroupName"
Start-Sleep -Milliseconds 200
Get-AzureADGroupMember -ObjectId $GroupId -All $true | Select-Object -Property @{Name = 'GroupName'; Expression= {$GroupName}}, DisplayName, UserPrincipalName
}

$groupMembers | Export-Csv -Path $PathCsv -NoTypeInformation