Ajouter en bloc des membres de groupe dans Microsoft Entra ID
Vous pouvez ajouter plusieurs membres à un groupe en utilisant un fichier de valeurs séparées par des virgules (CSV) pour importer en bloc des membres de groupe dans le portail de Microsoft Entra ID.
Comprendre le modèle CSV
Téléchargez et renseignez le modèle CSV de chargement en bloc pour ajouter des membres du groupe Microsoft Entra en bloc. Votre modèle CSV peut se présenter comme dans l’exemple suivant :
Structure du modèle CSV
Les lignes d’un modèle CSV téléchargé sont les suivantes :
- Numéro de version : la première ligne contenant le numéro de version doit être incluse dans le fichier CSV chargé.
- En-têtes de colonne : Le format des en-têtes de colonne est <Nom d’élément> [PropertyName] <Obligatoire ou vide>. par exemple
Member object ID or user principal name [memberObjectIdOrUpn] Required
. Certaines anciennes versions du modèle peuvent avoir de légères variations. Pour les modifications apportées à l’appartenance au groupe, vous pouvez choisir l’ID d’objet membre ou le nom d’utilisateur principal. - Exemples de lignes : le modèle comprend une ligne d’exemples de valeurs acceptables pour chaque colonne. Vous devez supprimer la ligne des exemples et la remplacer par vos propres entrées.
Autres conseils
- Les deux premières lignes du modèle chargé ne doivent pas être supprimées ni modifiées. Sinon, le chargement ne pourra pas être traité.
- Les colonnes obligatoires sont listées en premier.
- Nous vous déconseillons d’ajouter des colonnes au modèle. Les autres colonnes que vous ajouterez seront ignorées et ne seront pas traitées.
- Nous vous recommandons de télécharger la version la plus récente du modèle CSV aussi souvent que possible.
- Ajoutez au moins deux UPN ou ID d’objet pour télécharger le fichier avec succès.
Importer en bloc les membres du groupe
Conseil
Les étapes décrites dans cet article pourraient varier légèrement en fonction du portail de départ.
Connectez-vous au centre d'administration Microsoft Entra en tant qu'administrateur de groupes au moins.
Sélectionnez Microsoft Entra ID.
Remarque
Les propriétaires de groupes peuvent également importer en bloc les membres de groupes qu'ils possèdent.
Sélectionnez Groupes>Tous les groupes.
Ouvrez le groupe auquel vous ajoutez des membres, puis sélectionnez Membres.
Dans la page Membres, sélectionnez Opérations en bloc, puis choisissez Importer des membres.
Dans la page Importer en bloc les membres du groupe, sélectionnez Télécharger pour obtenir le modèle de fichier CSV avec les propriétés des membres du groupe requises.
Ouvrez le fichier CSV et ajoutez une ligne pour chaque membre de groupe que vous souhaitez importer dans le groupe. Les valeurs requises sont soit ID d’objet de membre soit Nom d’utilisateur principal. Puis enregistrez le fichier.
Dans la page Importer en bloc les membres du groupe, sous Chargez votre fichier .csv, accédez au fichier. Quand vous sélectionnez le fichier, la validation du fichier CSV démarre.
Quand le contenu du fichier est validé, la page d’importation en bloc affiche Fichier chargé. Si des erreurs sont présentes, vous devez les corriger avant de pouvoir envoyer le travail.
Une fois votre fichier validé, sélectionnez Envoyer pour démarrer l’opération en bloc qui importe les membres du groupe dans le groupe.
Une fois l’opération d’importation terminée, une notification indique que l’opération en bloc a réussi.
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 d’importation en bloc.
Vérifier l'état de l'importation
Vous pouvez consulter le status de toutes vos demandes d'opération en bloc en attente sur la page Résultats de l'opération en bloc.
Pour plus d’informations sur chaque élément de ligne au sein de l’opération en bloc, sélectionnez les valeurs sous les colonnes Nombre de réussites, Nombre d’échecs ou Nombre total de requêtes. Si des défaillances se sont produites, les raisons sont affichées.
Limites du service d’importation en bloc
Vous devez savoir que chaque activité des opérations en bloc peut s’exécuter pendant une période allant 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"