Búsqueda de sitios web

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 -Force

Debe 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 -All

La 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, GroupTypes

La 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).Count

La 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>' -All

Ejecute el siguiente ejemplo de comando de PowerShell.

Get-MgGroupMember -GroupId '0a33cb80-41ff-4e92-8c85-269a81dec110' -All

El 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.Hansen

En 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.

  1. Crea una carpeta llamada temp y guárdala en la unidad (C:) si no la tienes.
  2. Escriba el Nombre del grupo en la línea número 5
  3. 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
    }
}
  1. Vaya al archivo CSV en la carpeta C:\temp
  2. Abra el archivo CSV con una aplicación como Microsoft Excel para ver los resultados.

  1. 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 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.

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.

Artículos relacionados