Compartir a través de


Crear usuarios en bloque en Microsoft Entra ID

Microsoft Entra ID, parte de Microsoft Entra, admite operaciones de creación y eliminación de usuarios en bloque y la descarga de listas de usuarios. Solo tiene que rellenar una plantilla de valores separados por comas (CSV), que puede descargar de Microsoft Entra ID.

Permisos necesarios

Para crear usuarios en bloque en el portal de administración, debe iniciar sesión al menos como administrador de usuarios.

Descripción de la plantilla CSV

Descargue y rellene la plantilla CSV de carga masiva para ayudarle a crear correctamente usuarios en bloque en Microsoft Entra. La plantilla CSV que descargue podría parecerse a este ejemplo:

Captura de pantalla de la hoja de cálculo para cargar y llamar a explicar el propósito y los valores de cada fila y columna.

Advertencia

Si agrega solo una entrada en la plantilla CSV, debe conservar la fila 3 y agregar la entrada nueva a la fila 4.

Asegúrese de agregar la extensión del archivo .csv y de eliminar los espacios iniciales antes de userPrincipalName, passwordProfile y accountEnabled.

Estructura de la plantilla CSV

Las filas de una plantilla CSV descargada son las siguientes:

  • 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>. Por ejemplo, Name [displayName] Required. Algunas versiones anteriores de la plantilla podrían tener ligeras variaciones.
  • Fila de ejemplos: en la plantilla se incluye una fila de ejemplos de valores válidos para cada columna. Debe quitar la fila de ejemplos y reemplazarla por sus propias entradas.

Instrucciones adicionales

  • 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 columna adicional que agregue se omitirá y no se procesará.
  • Se recomienda que descargue la versión más reciente de la plantilla CSV tan a menudo como sea posible.
  • Asegúrese de comprobar que no haya ningún espacio en blanco no deseado delante o detrás de ningún campo. En Nombre principal del usuario, el hecho de tener este espacio en blanco produciría un error de importación.
  • Asegúrese de que los valores de Contraseña inicial cumplen con la directiva de contraseñas activa actualmente.

Para crear usuarios en bloque

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de usuario.

  2. Seleccione Microsoft Entra ID.

  3. Seleccione Todos los usuarios>Usuarios>Crear de forma masiva.

  4. En la página Creación masiva de usuarios, seleccione Descargar para recibir un archivo de valores separados por comas (CSV) válido de propiedades de usuario y, luego, agregue los usuarios que desea crear.

    Captura de pantalla que muestra cómo seleccionar un archivo CSV local en el que se enumeran los usuarios que desea agregar.

  5. Abra el archivo CSV y agregue una línea por cada usuario que desee crear. Los únicos valores necesarios son Nombre, Nombre principal del usuario, Contraseña inicial y Bloquear inicio de sesión (Sí/No) . A continuación, guarde el archivo.

    Captura de pantalla que muestra un ejemplo del archivo CSV que contiene los nombres e identificadores de los usuarios que se van a crear.

  6. En la página Creación masiva de usuarios, en Cargue el archivo csv, vaya al archivo. Al seleccionar el archivo y hacer clic en Enviar, comienza su validación.

  7. Cuando finalice la validación del contenido del archivo, aparecerá el mensaje Archivo cargado correctamente. Si hay errores, debe corregirlos para poder enviar el trabajo.

  8. Cuando el archivo supere la validación, seleccione Enviar para iniciar la operación masiva que importa los nuevos usuarios.

  9. Cuando la operación de importación finalice, verá una notificación que indicará el estado del trabajo de la operación masiva.

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.

Comprobar estado

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 cómo comprobar el estado de la operación en la página de resultados de operaciones masivas.

A continuación, puede comprobar que los usuarios creados existen en la organización de Microsoft Entra en Azure Portal o mediante PowerShell.

Comprobación de usuarios

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de usuario.
  2. Seleccione Microsoft Entra ID.
  3. Seleccione Todos los usuarios>Usuarios.
  4. En Mostrar, seleccione Todos los usuarios y compruebe que se incluyen los usuarios creados.

Comprobación de usuarios con PowerShell

Ejecute el siguiente comando:

Get-MgUser -Filter "UserType eq 'Member'"

Debería ver que se han incluido los usuarios creados.

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 podrían agotar el tiempo de espera y producir errores en inquilinos muy grandes. 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, podría 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 refinar los filtros, básicamente limita los datos devueltos por la operación masiva.

Otra solución alternativa para este problema es usar PowerShell para realizar llamadas directas de Microsoft Graph API. Para 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 columna 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 columna 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