As operações em massa no Microsoft Entra ID permitem que você realize ações em várias entidades, como usuários, grupos e dispositivos, de uma só vez. Essas ações podem incluir a criação, a exclusão ou a atualização de vários registros em uma única operação. As operações em massa podem simplificar muito as tarefas administrativas e melhorar a eficiência.
Operações em massa no portal de administração do Microsoft Entra podem atingir o tempo limite e falhar em locatários grandes. Essa limitação é um problema conhecido devido a limitações de dimensionamento.
Observação
Ao executar operações em massa, como importar ou criar, você poderá encontrar um problema se a operação em massa não for concluída dentro de uma hora. Para contornar esse problema, é recomendável dividir o número de registros processados por lote. Por exemplo, antes de iniciar uma exportação, você pode limitar o conjunto de resultados filtrando um tipo de grupo ou nome de usuário para reduzir o tamanho dos resultados. Ao refinar seus filtros, essencialmente você está limitando os dados retornados pela operação em massa.
Solução alternativa para operações em massa
Uma solução alternativa para esse problema é usar o PowerShell para fazer chamadas diretas à API do Microsoft Graph. Para falha no download em massa de usuários e grupos, recomendamos o uso dos cmdlets do PowerShell GET-MgGroup -All e GET-MgUser -All.
Os exemplos de código do PowerShell a seguir são para operações em massa relacionadas a:
# 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 ($userin$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-MgGraphWrite-Host"User data exported to $outputCsvPath"
Criar usuários
Azure PowerShell
# 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 ($userRowin$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-MgGraphWrite-Host"Bulk user creation completed."
Observação
Certifique-se de que seu arquivo CSV contenha as colunas necessárias (por exemplo, DisplayName, UserPrincipalName e assim por diante). Além disso, ajuste o script para que corresponda aos nomes de coluna reais no seu arquivo CSV.
Excluir usuários
Azure PowerShell
# 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 ($userRowin$usersData) {
try {
Remove-MgUser -UserId$userRow.UserPrincipalName -Confirm:$falseWrite-Host"User $($userRow.UserPrincipalName) deleted successfully."
} catch {
Write-Host"Error deleting user $($userRow.UserPrincipalName): $($_.Exception.Message)"
}
}
# Disconnect from Microsoft Graph Disconnect-MgGraphWrite-Host"Bulk user deletion completed."
Observação
Certifique-se de que o arquivo CSV contenha as colunas necessárias (por exemplo, UserPrincipalName). Além disso, ajuste o script para que corresponda aos nomes de coluna reais no seu arquivo CSV.
Grupos
Download em massa de todos os grupos
Azure PowerShell
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 ($groupin$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\\<YourUsername>\\Documents\\Groups.csv"$groupData| Export-Csv -Path$outputCsvPath -NoTypeInformationWrite-Host"Group members exported to $outputCsvPath"
Download em massa de membros de um grupo
Azure PowerShell
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-MgGraphWrite-Host"Group members exported to $outputCsvPath"
Adicionar membros em massa
Azure PowerShell
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 ($memberin$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
Remover membros em massa
Azure PowerShell
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 ($memberin$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
Download em massa de todos os dispositivos
Azure PowerShell
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 -NoTypeInformationWrite-Host"Devices exported to $outputCsvPath"
Este módulo permite que você gerencie tarefas de identificação do Microsoft Entra, incluindo RBAC, gerenciamento de usuários/grupos, cmdlets do PowerShell e sincronização de objetos do AD DS. Você utilizará e gerenciará efetivamente a ID do Microsoft Entra em sua organização depois de concluir este módulo.
Planeje e execute uma estratégia de implantação de ponto de extremidade, usando elementos essenciais de gerenciamento moderno, abordagens de cogerenciamento e integração com o Microsoft Intune.