Partage via


Téléchargez une liste d’utilisateurs dans le portail Azure

Microsoft Entra ID, qui fait partie de Microsoft Entra, prend en charge les opérations de téléchargement de listes d’utilisateurs en bloc.

Autorisations requises

Les utilisateurs administrateurs et non administrateurs peuvent télécharger des listes d’utilisateurs.

Pour télécharger une liste d’utilisateurs

Conseil

Les étapes de cet article peuvent varier légèrement en fonction du portail à partir duquel vous démarrez.

  1. Connectez-vous au centre d’administration Microsoft Entra.

  2. Sélectionnez Microsoft Entra ID.

  3. Sélectionnez Utilisateurs>Tous les utilisateurs>Télécharger les utilisateurs. Par défaut, tous les profils utilisateurs sont exportés.

  4. Dans la page Télécharger les utilisateurs, sélectionnez Démarrer pour recevoir un fichier CSV répertoriant les propriétés de profil utilisateur. Si des erreurs se produisent, vous pouvez télécharger et consulter le fichier de résultats dans la page Résultats de l’opération en bloc. Le fichier contient la raison de chaque erreur.

    Capture d’écran de la sélection de l’emplacement où vous souhaitez télécharger la liste des utilisateurs.

Remarque

Le fichier de téléchargement contiendra la liste filtrée des utilisateurs en fonction de l’étendue des filtres appliqués.

Les attributs utilisateur suivants sont inclus :

  • userPrincipalName
  • displayName
  • surname
  • mail
  • givenName
  • objectId
  • userType
  • jobTitle
  • department
  • accountEnabled
  • usageLocation
  • streetAddress
  • state
  • country
  • physicalDeliveryOfficeName
  • city
  • postalCode
  • telephoneNumber
  • mobile
  • authenticationAlternativePhoneNumber
  • authenticationEmail
  • alternateEmailAddress
  • ageGroup
  • consentProvidedForMinor
  • legalAgeGroupClassification

Vérification du statut

Pour connaître l'état de vos demandes d'opérations en bloc en attente, consultez la page Résultats des opérations en bloc.

Capture d’écran de la vérification de l’état dans la page Résultats des opérations en bloc.

Si vous rencontrez des erreurs, vous pouvez télécharger et consulter le fichier de résultats dans la page Résultats de l’opération en bloc. Le fichier contient la raison de chaque erreur. L’envoi du fichier doit correspondre au modèle fourni et inclure les noms de colonnes exacts. Pour plus d’informations sur les limitations des opérations en bloc, consultez Limites du service de téléchargement en bloc.

Limites du service de téléchargement en bloc

Vous devez savoir que chaque activité des opérations en bloc peut s’exécuter jusqu’à une heure.

Les opérations en bloc dans le portail d’administration Microsoft Entra peuvent expirer et échouer sur des locataires très grands. Cette limitation est un problème connu en raison des limitations de mise à l’échelle. L’équipe d’ingénieurs de Microsoft travaille sur un nouveau service qui permettra à terme de résoudre cette limitation.

Remarque

Lorsque vous effectuez des opérations en bloc, comme l’importation ou la création, vous pouvez rencontrer un problème si l’opération en bloc ne se termine pas dans l’heure. Pour contourner ce problème, nous vous recommandons de fractionner le nombre d’enregistrements traités par lot. Par exemple, avant de commencer une exportation, vous pouvez limiter le jeu de résultats en filtrant par type de groupe ou nom d’utilisateur pour réduire la taille des résultats. En affinant vos filtres, vous limitez essentiellement les données retournées par l’opération en bloc.

Une autre solution de contournement pour ce problème consiste à utiliser PowerShell afin d’effectuer des appels d’API Microsoft Graph directs. Pour l’échec du téléchargement en bloc des utilisateurs et des groupes, nous vous recommandons d’utiliser les applets de commande PowerShell GET-MgGroup -All et GET-MgUser -All.

Les exemples de code PowerShell suivants sont destinés aux opérations en bloc liées aux :

Utilisateurs

Télécharger en bloc tous les utilisateurs

# 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" 

Créer des utilisateurs en bloc

# 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." 

Remarque

Vérifiez que votre fichier CSV contient les colonnes nécessaires (par exemple, DisplayName, UserPrincipalName, etc.). Ajustez également le script pour qu’il corresponde aux noms de colonnes réels de votre fichier CSV.

Supprimer des utilisateurs en bloc

# 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." 

Remarque

Vérifiez que votre fichier CSV contient les colonnes nécessaires (par exemple, UserPrincipalName). Ajustez également le script pour qu’il corresponde aux noms de colonnes réels de votre fichier CSV.

Groupes

Télécharger en bloc tous les groupes

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" 

Télécharger en bloc les membres d’un groupe

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"  

Ajouter des membres en bloc

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 

Supprimer des membres en bloc

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 

Appareils

Télécharger en bloc tous les appareils

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"  

Étapes suivantes