Compartir vía


Agregar miembros de grupo de forma masiva en Microsoft Entra ID

Puede agregar varios miembros a un grupo utilizando un archivo de valores separados por comas (CSV) para importar de forma masiva miembros de un grupo en el portal de Microsoft Entra ID.

Nociones sobre la plantilla CSV

Descargue y rellene la plantilla CSV de carga masiva para agregar correctamente miembros a un grupo de Microsoft Entra de forma masiva. La plantilla CSV podría parecerse a este ejemplo:

Captura de pantalla que muestra la hoja de cálculo que se carga y leyendas que explican el propósito y los valores de cada fila y columna.

Estructura de la plantilla CSV

Las filas de una plantilla CSV descargada son:

  • Número de versión: la primera fila, que contiene el número de versión, debe estar incluida en el archivo CSV de carga.
  • Encabezados de columna: el formato de los encabezados de columna es <Nombre del elemento> [nombreDePropiedad] <Required (Obligatorio) o en blanco>. Un ejemplo es Member object ID or user principal name [memberObjectIdOrUpn] Required. Algunas versiones anteriores de la plantilla podrían tener ligeras variaciones. En el caso de los cambios de pertenencia a grupos, puede elegir el id. de objeto miembro o el nombre principal de usuario.
  • Fila de ejemplos: la plantilla incluye una fila de ejemplos de valores válidos para cada columna. Debe quitar la fila de ejemplos y reemplazarla por sus propias entradas.

Más instrucciones

  • Las dos primeras filas de la plantilla de carga no se deben eliminar ni modificar, o no se podrá procesar la carga.
  • Las columnas necesarias se enumeran en primer lugar.
  • No se recomienda agregar nuevas columnas a la plantilla. Cualquier otra columna que agregues se ignora y no se procesa.
  • Se recomienda que descargue la versión más reciente de la plantilla CSV tan a menudo como sea posible.
  • Agregue como mínimo los UPN de dos usuarios o identificadores de objeto para cargar correctamente el archivo.

Importación masiva de miembros de grupo

Sugerencia

Los pasos de este artículo podrían variar ligeramente en función del portal desde donde comienza.

  1. Inicie sesión en el Centro de administración de Microsoft Entra por lo menos como administrador de grupos.

  2. Seleccione Microsoft Entra ID.

    Nota:

    Los propietarios de grupos también pueden importar de forma masiva miembros de los grupos que poseen.

  3. Seleccione Grupos>Todos los grupos.

  4. Abra el grupo al que va a agregar miembros y luego seleccione Miembros.

  5. En la página Miembros , selecciona operaciones masivas y, a continuación, elige Importar miembros.

  6. En la página Importación masiva de los miembros del grupo, seleccione Descargar para obtener la plantilla del archivo CSV con las propiedades de miembro de grupo requeridas.

    Captura de pantalla que muestra el comando Import Members está en la página de perfil del grupo.

  7. Abra el archivo CSV y agregue una línea para cada miembro del grupo que quiera importar al grupo. Los valores obligatorios son o bien Id. de objeto miembro o Nombre principal de usuario. A continuación, guarde el archivo.

    Captura de pantalla que muestra el archivo CSV contiene los nombres e identificadores de los miembros que se importan.

  8. En la página Importación masiva de los miembros del grupo, en Cargar archivo CSV, vaya al archivo. Al seleccionar el archivo CSV, comienza su validación.

  9. Cuando finalice la validación del contenido del archivo, aparecerá el mensaje Archivo cargado correctamente en la página de importación en bloque. Si hay errores, debe corregirlos para poder enviar el trabajo.

  10. Cuando el archivo supere la validación, seleccione Enviar para iniciar la operación masiva que importa los miembros al grupo.

  11. Cuando la operación de importación finalice, una notificación indicará que la operación masiva se realizó correctamente.

Si experimenta errores, puede descargar y ver el archivo de resultados en la página Resultados de la operación masiva. El archivo contiene el motivo de cada error. El envío del archivo debe coincidir con la plantilla proporcionada e incluir los nombres de columna exactos. Para obtener más información sobre las limitaciones de las operaciones masivas, consulte Límites del servicio de importación masiva.

Comprobación del estado de importación

Puede ver el estado de todas las solicitudes masivas pendientes en la página Resultados de la operación masiva.

Captura de pantalla que muestra la opción Comprobar estado en la página Resultados de operaciones masivas.

Para obtener más información sobre cada elemento de línea de la operación masiva, seleccione los valores de las columnas Número de elementos correctos, Número de errores o Total de solicitudes. Si se produjeron errores, se incluyen los motivos en una lista.

Límites del servicio de importación en bloque

Debe tener en cuenta que cada actividad de operaciones masivas puede durar hasta una hora.

Las operaciones masivas en el portal de administración de Microsoft Entra pueden agotar el tiempo de espera y producir errores en los inquilinos de gran tamaño. Esta limitación es un problema conocido debido a las limitaciones de escalado. El equipo de ingeniería de Microsoft está trabajando en un nuevo servicio que finalmente abordará esta limitación.

Nota:

Al realizar operaciones masivas, como importar o crear, puede producirse un problema si la operación masiva no se completa en el plazo de una hora. Para solucionar este problema, se recomienda dividir el número de registros procesados por lote. Por ejemplo, antes de iniciar una exportación, puede limitar el conjunto de resultados filtrando por un tipo de grupo o un nombre de usuario para reducir el tamaño de los resultados. Al ajustar los filtros, se limitan los datos devueltos por la operación masiva.

Otra solución alternativa para este problema es usar PowerShell para realizar llamadas directas a Microsoft Graph API. Para los errores de descarga masiva de usuarios y grupos, se recomienda usar los cmdlets de PowerShell GET-MgGroup -All y GET-MgUser -All.

Los siguientes ejemplos de código de PowerShell son para operaciones masivas relacionadas con:

Usuarios

Descarga masiva de todos los usuarios

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.Read.All" 

# Get all users using Get-MgUser 
$users = Get-MgUser -All -ConsistencyLevel eventual -Property Id, DisplayName, UserPrincipalName,UserType,OnPremisesSyncEnabled,CompanyName,CreationType 

# Specify the output CSV file path 
$outputCsvPath = "C:\\Users\\YourUsername\\Documents\\Users.csv"  

# Create a custom object to store user data 
$userData = @() 

# Loop through each user and collect relevant data 
foreach ($user in $users) { 
    $userObject = [PSCustomObject]@{ 
        Id = $user.Id 
        DisplayName = $user.DisplayName 
        UserPrincipalName = $user.UserPrincipalName 
        UserType = $user.UserType 
        OnPremisesSyncEnabled = $user.OnPremisesSyncEnabled 
        CompanyName = $user.CompanyName 
        CreationType = $user.CreationType 
    } 
    $userData += $userObject 
} 

# Export user data to a CSV file 
$userData | Export-Csv -Path $outputCsvPath -NoTypeInformation 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "User data exported to $outputCsvPath" 

Creación masiva de usuarios

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.ReadWrite.All" 

# Specify the path to the CSV file containing user data 
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv" 

# Read the CSV file (adjust the column names as needed) 
$usersData = Import-Csv -Path $csvFilePath 

# Loop through each row in the CSV and create users \
foreach ($userRow in $usersData) { 
    $userParams = @{ 
        DisplayName = $userRow.'Name [displayName] Required' 
        UserPrincipalName = $userRow.'User name [userPrincipalName] Required' 
        PasswordProfile = @{ 
            Password = $userRow.'Initial password [passwordProfile] Required' 
        } 
        AccountEnabled = $true 
        MailNickName = $userRow.mailNickName 
    } 
    try { 
        New-MgUser @userParams 
        Write-Host "User $($userRow.UserPrincipalName) created successfully." 
    } catch { 
        Write-Host "Error creating user $($userRow.UserPrincipalName): $($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "Bulk user creation completed." 

Nota:

Asegúrese de que el archivo CSV contiene las columnas necesarias (por ejemplo, DisplayName, UserPrincipalName, etc.). Además, ajuste el script para que coincida con los nombres reales de las columnas en el archivo CSV.

Eliminación masiva de usuarios

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.ReadWrite.All" 

# Specify the path to the CSV file containing user data 
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv" 

# Read the CSV file (adjust the column names as needed) 
$usersData = Import-Csv -Path $csvFilePath 

# Loop through each row in the CSV and delete users 
foreach ($userRow in $usersData) { 
    try { 
        Remove-MgUser -UserId $userRow.UserPrincipalName -Confirm:$false 
        Write-Host "User $($userRow.UserPrincipalName) deleted successfully." 
    } catch { 
        Write-Host "Error deleting user $($userRow.UserPrincipalName): $($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "Bulk user deletion completed." 

Nota:

Asegúrese de que el archivo CSV contiene las columnas necesarias (por ejemplo, UserPrincipalName). Además, ajuste el script para que coincida con los nombres reales de las columnas en el archivo CSV.

Grupos

Descarga masiva de todos los grupos

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Group.Read.All" 

 # Get the group members 
 $groups = Get-MgGroup -All | Select displayName, Id, groupTypes,mail 

 # Create a custom object to store group data 
$groupData = @() 

# Loop through each group and collect relevant data 
foreach ($group in $groups) { 
    if ($group.groupTypes -contains "Unified"){$groupType = "Microsoft 365"} 
    else {$groupType = "Security"} 
    if ($group.groupTypes -contains "DynamicMembership"){$membershipType = "Dynamic"} 
    else {$membershipType = "Assigned"} 
    $groupObject = [PSCustomObject]@{ 
        Id = $group.Id 
        DisplayName = $group.displayName 
        Mail = $group.mail 
        GroupType = $groupType 
        MemebershipType = $membershipType 
    }   
    $groupData += $groupObject 
} 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\cewu\\Documents\\Groups.csv" 

 $groupData| Export-Csv -Path $outputCsvPath -NoTypeInformation 
 
 Write-Host "Group members exported to $outputCsvPath" 

Descarga masiva de miembros de un grupo

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Group.Read.All,GroupMember.Read.All" 

 # Set the group ID of the group whose members you want to download 
 $groupId = "your_group_id" 

 # Get the group members 
 $members = Get-MgGroupMember -GroupId $groupId -All | select * -ExpandProperty additionalProperties | Select-Object @( 
                'id'     
                @{  Name       = 'userPrincipalName' 
                    Expression = { $_.AdditionalProperties["userPrincipalName"] } 
                } 
                @{  Name = 'displayName' 
                Expression = { $_.AdditionalProperties["displayName"] } 
                } 
            ) 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\YourUserName\\Documents\\GroupMembers.csv" 

 $members| Export-Csv -Path $outputCsvPath -NoTypeInformation 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

 Write-Host "Group members exported to $outputCsvPath"  

Incorporación de miembros de forma masiva

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "GroupMember.ReadWrite.All" 

# Import the CSV file 
$members = Import-Csv -Path "C:\path\to\your\file.csv" 

# Define the Group ID 
$groupId = "your-group-id" 

# Iterate over each member and add them to the group 
foreach ($member in $members) { 
    try{ 
        New-MgGroupMember -GroupId $groupId -DirectoryObjectId $member.memberObjectId 
  	 Write-Host "Added $($member.memberObjectId) to the group."  
    } 
    Catch{ 
        Write-Host "Error adding member $($member.memberObjectId):$($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Eliminación de miembros de forma masiva

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "GroupMember.ReadWrite.All" 

# Import the CSV file 
$members = Import-Csv -Path "C:\path\to\your\file.csv" 

# Define the Group ID 
$groupId = "your-group-id" 

# Iterate over each member and add them to the group 
foreach ($member in $members) { 
    try{ 
        Remove-MgGroupMemberByRef -GroupId $groupId -DirectoryObjectId $member.memberObjectId \
        Write-Host "Removed $($member.memberObjectId) from the group." 
    } 
    Catch{ 
        Write-Host "Error removing member $($member.memberObjectId):$($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Dispositivos

Descarga masiva de todos los dispositivos

Import-Module Microsoft.Graph 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Device.Read.All" 

 # Get all devices  
 $devices = Get-MgDevice -All |select displayName,deviceId,operatingSystem,operatingSystemVersion,isManaged,isCompliant,mdmAppId,registeredOwners,TrustType 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\YourUserName\\Documents\\Devices.csv" 

 $devices| Export-Csv -Path $outputCsvPath -NoTypeInformation 

 Write-Host "Devices exported to $outputCsvPath"  

Pasos siguientes