Exporte miembros del grupo de Azure AD a CSV con PowerShell
En el centro de administración de Microsoft 365, puede obtener una lista de todos los grupos de su organización. La desventaja es que sólo puedes mostrar y exportar los miembros de un único grupo. Con PowerShell, puede exportar de forma masiva todos los grupos y los detalles de sus miembros en un archivo CSV. En este artículo, aprenderá cómo exportar todos los miembros del grupo de Azure AD a un archivo CSV con PowerShell.
Conéctese a Microsoft Graph PowerShell
Antes de comenzar, debe instalar el módulo Microsoft Graph PowerShell, incluido el módulo Microsoft Graph Beta.
Ejecute el siguiente comando para instalar el módulo Microsoft Graph.
Install-Module Microsoft.Graph -Force
Install-Module Microsoft.Graph.Beta -AllowClobber -ForceDebe conectarse a MS Graph con los siguientes alcances.
Connect-MgGraph -Scopes "User.Read.All", "GroupMember.Read.All", "Group.Read.All", "Directory.Read.All"Ver información de grupos de Azure AD
Mostraremos cómo mostrar información sobre todos los grupos de Azure AD en la salida de PowerShell. Recuerda que toda la información que puedas mostrar en la consola de PowerShell también la podrás exportar a un archivo CSV.
Obtener una lista de todos los grupos de Azure AD
Puede mostrar una lista de todos los grupos de Azure AD en su organización. Para ver todos los grupos, utilice el cmdlet Get-MgGroup.
Get-MgGroup -AllLa salida de PowerShell muestra el siguiente resultado.
PS C:\> Get-MgGroup -All
DisplayName Id MailNickname Description GroupTypes
----------- -- ------------ ----------- ----------
Mail security 00d760d0-d5a7-49d8-88d5-21a093b34bd7 Mail.Security Mail security {}
Sales Spain 06a56975-ba05-43cc-8a2a-e8879f42e622 SalesSpain {}
Sales UK 0a33cb80-41ff-4e92-8c85-269a81dec110 SalesUK {}
Sales Sweden 0c3107c9-b1e7-4a0b-ac50-38ef25e6aeb2 SalesSweden {}
Management Team 18233557-5240-4a0f-80b5-ccacf8c97102 ManagementTeam For the Management Team {Unified}
Sales Team 2de06857-1e0c-4ffe-b85c-7b0c18bb71d3 SalesTeam For the Sales Team {Unified}
Finance USA 38fc2d7f-b496-47fc-9fa8-96178d17e52e FinanceUSA {}
Sales Employees 525672db-4320-40e5-8a42-69457dae2347 Sales.Employees Sales Employees {} Obtenga detalles del grupo de Azure AD mediante el nombre para mostrar
En nuestro ejemplo, queremos encontrar los detalles del grupo Sales UK. Puede encontrar el número de identificación del grupo si conoce el nombre para mostrar del grupo.
Ejecute el siguiente ejemplo de comando de PowerShell.
Get-MgGroup -Filter "DisplayName eq 'Sales UK'" | fl Id, DisplayName, Description, GroupTypesLa salida de PowerShell muestra el siguiente resultado.
PS C:\> Get-MgGroup -Filter "DisplayName eq 'Sales UK'" | fl Id, DisplayName, Description, GroupTypes
Id : 0a33cb80-41ff-4e92-8c85-269a81dec110
DisplayName : Sales UK
Description :
GroupTypes : {}Mostrar detalles de los miembros del grupo de Azure AD
Para obtener información ampliada sobre los miembros de un grupo específico, necesitamos usar el cmdlet de PowerShell Get-MgGroupMember.
Contar el total de miembros del grupo de Azure AD
Si conoce el número de identificación del grupo, puede averiguar cuántos miembros tiene un grupo específico. Consulte el paso anterior para obtener el número de identificación de grupo de un grupo específico.
En nuestro ejemplo, usaremos el parámetro -GroupId para contar el número de miembros del grupo Sales UK.
Ejecute el siguiente ejemplo de comando de PowerShell.
(Get-MgGroupMember -GroupId '0a33cb80-41ff-4e92-8c85-269a81dec110' -All).CountLa salida de PowerShell muestra el número de miembros del grupo.
PS C:\> (Get-MgGroupMember -GroupId '0a33cb80-41ff-4e92-8c85-269a81dec110' -All).Count
11
En nuestro ejemplo, la salida de PowerShell muestra que el grupo Sales UK tiene 11 miembros.
Obtenga miembros de Azure AD de un grupo específico con GroupId
También puedes obtener los miembros de un solo grupo con el parámetro -GroupId. En nuestro ejemplo, queremos ver qué miembros pertenecen al grupo Sales UK.
Consulte la sintaxis de PowerShell a continuación.
Get-MgGroupMember -GroupId '<Group Id number>' -AllEjecute el siguiente ejemplo de comando de PowerShell.
Get-MgGroupMember -GroupId '0a33cb80-41ff-4e92-8c85-269a81dec110' -AllEl resultado de salida de PowerShell solo muestra el número de identificación de todos los miembros del grupo de Sales UK.
PS C:\> Get-MgGroupMember -GroupId '0a33cb80-41ff-4e92-8c85-269a81dec110' -All
Id DeletedDateTime
-- ---------------
eec2668a-0773-4947-93ba-2223f6acfe55
fd199cb4-2ebf-4171-96e2-12fd75453e39
fa956d8c-87df-4cd4-ac2a-ac1f3d7cac8b
d89be5ce-6495-4009-b61b-81126c239c34
a9532b30-4edb-4b66-a3b0-6ac972a6065b
b602b148-2fcf-435a-9d34-ce72c3a8c748
3bb176aa-d0ba-47f7-aecc-f4837593006e
1d9fc432-6a9f-44c5-8cda-0291662bc825
12eefbb2-e5f4-4eec-bd18-df7ca2f1ee6b
274d72d7-cc30-4a64-bc33-c99ff96c3abf
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 Si desea información más detallada, como el UserPrincipalName o el DisplayName de cada miembro, lea el siguiente paso.
Obtenga detalles de los miembros del grupo de Azure AD de un grupo específico
Para obtener más detalles sobre los miembros de un grupo específico, puede utilizar el siguiente script de PowerShell.
El script ordenará el resultado y mostrará la siguiente información sobre los miembros UserPrincipalName, DisplayName y Alias.
En nuestro ejemplo, usaremos el mismo GroupId y lo pegaremos en la línea número 5.
Ejecute el siguiente script de PowerShell.
# Connect to Microsoft Graph with specified scopes
Connect-MgGraph -Scopes "User.Read.All", "GroupMember.Read.All", "Group.Read.All", "Directory.Read.All"
# GroupId
$groupId = '0a33cb80-41ff-4e92-8c85-269a81dec110'
# Initialize an array to store the output
$outputArray = @()
try {
# Get members of the group
$members = Get-MgGroupMember -GroupId $groupId -All
# Iterate through the members and retrieve UPN, display name, and alias
foreach ($member in $members) {
$userId = $member.Id
try {
$user = Get-MgUser -UserId $userId -ErrorAction SilentlyContinue
if ($user) {
$userPrincipalName = $user.UserPrincipalName
$displayName = $user.DisplayName
# Extract alias from UserPrincipalName
$alias = $userPrincipalName -replace "@.*"
}
else {
# User not found
$userPrincipalName = 'Not Available'
$displayName = 'Not Available'
$alias = 'Not Available'
}
$output = [PSCustomObject]@{
'Id' = $userId
'UserPrincipalName' = $userPrincipalName
'DisplayName' = $displayName
'Alias' = $alias
}
$outputArray += $output
}
catch {
# Handle any errors while fetching user details
Write-Host "Error fetching user details for UserId: $userId - $_" -ForegroundColor Red
}
}
}
catch {
# Handle any errors while fetching group members
Write-Host "Error fetching group members: $_" -ForegroundColor Red
}
# Display the output in a formatted table
$outputArray | Format-Table -Property Id, UserPrincipalName, DisplayName, Alias
La salida de PowerShell muestra los miembros del grupo Id, UserPrincipalName y Nombre para mostrar.
Id UserPrincipalName DisplayName Alias
-- ----------------- ----------- -----
eec2668a-0773-4947-93ba-2223f6acfe55 David.Kent@m365info.com David Kent David.Kent
fd199cb4-2ebf-4171-96e2-12fd75453e39 Susan.Brown@m365info.com Susan Brown Susan.Brown
fa956d8c-87df-4cd4-ac2a-ac1f3d7cac8b Chris.Lucas@m365info.com Chris Lucas Chris.Lucas
d89be5ce-6495-4009-b61b-81126c239c34 George.Wilson@m365info.com George Wilson George.Wilson
a9532b30-4edb-4b66-a3b0-6ac972a6065b Jill.Bates@m365info.com Jill Bates Jill.Bates
b602b148-2fcf-435a-9d34-ce72c3a8c748 Diana.Baker@m365info.com Diana Baker Diana.Baker
3bb176aa-d0ba-47f7-aecc-f4837593006e Mary.James@m365info.com Mary James Mary.James
1d9fc432-6a9f-44c5-8cda-0291662bc825 Ricky.Lewis@m365info.com Ricky Lewis Ricky.Lewis
12eefbb2-e5f4-4eec-bd18-df7ca2f1ee6b Ken.Walker@m365info.com Ken Walker Ken.Walker
274d72d7-cc30-4a64-bc33-c99ff96c3abf RoomTest8@m365info.com RoomTest8 RoomTest8
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 Amanda.Hansen@m365info.com Amanda Hansen Amanda.HansenEn el siguiente paso, podrá obtener los mismos detalles de miembro, pero sin utilizar el ID del grupo.
Exportar miembros de Azure AD de un grupo específico a CSV
Exporte todos los miembros de un grupo específico a un único archivo CSV sin utilizar el número de identificación del grupo. Digamos que no conoce el número de identificación de un grupo específico o no desea recuperarlo. En nuestro ejemplo, queremos obtener todos los detalles de los miembros del grupo Sales UK.
- Crea una carpeta llamada temp y guárdala en la unidad (C:) si no la tienes.
- Escriba el Nombre del grupo en la línea número 5
- Ejecute el siguiente script de PowerShell
# Connect to Microsoft Graph with specified scopes
Connect-MgGraph -Scopes "User.Read.All", "GroupMember.Read.All", "Group.Read.All", "Directory.Read.All"
# Specify the group name to retrieve
$GROUP_NAME = "Sales UK"
# Retrieve the group based on the specified display name
$group = Get-MgGroup -Filter "DisplayName eq '$GROUP_NAME'"
# Check if the group was found
if ($group -eq $null) {
Write-Host "Group with name '$GROUP_NAME' not found."
}
else {
# Check if the Group ID is not empty or null
if ([string]::IsNullOrWhiteSpace($group.id)) {
Write-Host "Group ID for '$GROUP_NAME' is empty or null. Cannot retrieve group members."
}
else {
# Retrieve group members using the valid Group ID
$members = Get-MgGroupMember -GroupId $group.id -All
# Initialize an array to store user information
$users = @()
# Iterate through each group member and retrieve user details
foreach ($member in $members) {
$user = Get-MgUser -UserId $member.Id -ErrorAction SilentlyContinue
# Check if $user is not null before accessing properties
if ($user -ne $null) {
# Extract the alias from the UserPrincipalName
$alias = $user.UserPrincipalName.Split("@")[0]
# Add user information to the array
$users += New-Object PSObject -Property @{
Group = $group.DisplayName;
Name = $user.DisplayName;
UserPrincipalName = $user.Mail;
Alias = $alias
}
}
}
# Export user information to a CSV file
$users | Export-Csv "C:\temp\GroupMembers.csv" -NoTypeInformation -Encoding UTF8
}
}- Vaya al archivo CSV en la carpeta C:\temp
- Abra el archivo CSV con una aplicación como Microsoft Excel para ver los resultados.
- El archivo CSV muestra el Alias, el Nombre y el UserPrincipalName de todos los miembros del grupo Sales UK.
Exportación masiva de miembros del grupo de Azure AD a CSV
Exporte todos los grupos de Azure AD que estén disponibles en su organización, incluidos los miembros de sus grupos.
Este script de PowerShell crea un único archivo CSV y agrega todos los grupos de su organización, que contiene el Alias, el Nombre y el UserPrincipalName de cada miembro.
# Connect to Microsoft Graph with specified scopes
Connect-MgGraph -Scopes "User.Read.All", "GroupMember.Read.All", "Group.Read.All", "Directory.Read.All"
# Retrieve all groups
$groups = Get-MgGroup -All
# Initialize an array to store user information
$allUsers = @()
# Iterate through each group and retrieve group members
foreach ($group in $groups) {
if ([string]::IsNullOrWhiteSpace($group.id)) {
Write-Host "Group ID for group '$($group.DisplayName)' is empty or null. Cannot retrieve group members."
}
else {
# Retrieve group members using the valid Group ID
$members = Get-MgGroupMember -GroupId $group.id -All
# Iterate through each group member and retrieve user details
foreach ($member in $members) {
$user = Get-MgUser -UserId $member.Id -ErrorAction SilentlyContinue
# Check if $user is not null before accessing properties
if ($user -ne $null) {
# Extract the alias from the UserPrincipalName
$alias = $user.UserPrincipalName.Split("@")[0]
# Add user information to the array
$allUsers += New-Object PSObject -Property @{
Group = $group.DisplayName;
Name = $user.DisplayName;
UserPrincipalName = $user.Mail;
Alias = $alias
}
}
}
}
}
# Export all user information to a CSV file
$allUsers | Export-Csv "C:\temp\AllGroupMembers.csv" -NoTypeInformation -Encoding UTF8Vaya al archivo CSV en la carpeta C:\temp. Abra el archivo CSV con una aplicación como Microsoft Excel para ver los resultados.
La siguiente imagen muestra un único archivo CSV con todos los grupos de Azure AD disponibles, incluidas las identidades de los miembros.
¡Eso es todo!
Leer más: Establecer ID de empleado para usuarios de Azure AD »
Conclusión
Aprendió a exportar miembros del grupo de Azure AD a un archivo CSV con PowerShell. Hay muchas opciones con Microsoft Graph PowerShell en comparación con el centro de administración de Microsoft Entra para ver y exportar miembros del grupo de Azure. Una forma excelente es exportar de forma masiva todos los grupos de Azure AD de su organización y las identidades de los miembros a un único archivo CSV.
Disfrutaste este artículo? También te puede gustar Enviar correo electrónico con Microsoft Graph PowerShell. No olvides seguirnos y compartir este artículo.



