Baixar uma lista de usuários no portal do Azure
A ID do Microsoft Entra, parte do Microsoft Entra, dá suporte a operações de download da lista de usuários em massa.
Permissões necessárias
Usuários administradores e não administradores podem baixar listas de usuários.
Para baixar uma lista de usuários
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Selecione ID do Microsoft Entra.
Selecione Usuários>Todos os usuários>Baixar usuários. Por padrão, todos os perfis de usuário são exportados.
Na página Baixar usuários, selecione Iniciar para receber um arquivo CSV elencando as propriedades do perfil do usuário. Se houver erros, você poderá baixar e exibir o arquivo de resultados na página Resultados da operação em massa. O arquivo contém o motivo de cada erro.
Observação
O arquivo de download conterá a lista filtrada de usuários com base no escopo dos filtros aplicados.
Os seguintes atributos de usuários são incluídos:
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
Verificar o status
É possível ver o status de todas as suas solicitações em massa pendentes na página Resultados da operação em massa.
Se você encontrar erros, poderá baixar e exibir o arquivo de resultados na página de Resultados de operações em massa. O arquivo contém o motivo de cada erro. O envio de arquivo deve corresponder ao modelo fornecido e incluir os nomes de coluna exatos. Para obter mais informações sobre as limitações das operações em massa, consulte Limites do serviço de download em massa.
Limites do serviço de download em massa
Você deve estar ciente de que cada atividade de operações em massa pode ser executada por até uma hora.
Operações em massa no portal de administração do Microsoft Entra podem expirar e falhar em locatários muito grandes. Essa limitação é um problema conhecido devido a limitações de dimensionamento. A equipe de engenharia da Microsoft está trabalhando em um novo serviço que eventualmente resolverá essa limitação.
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 os filtros, basicamente você está limitando os dados retornados pela operação em massa.
Outra 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:
Usuários
Download em massa de todos os usuários
# 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"
Criação de usuários em massa
# 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."
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 corresponder aos nomes reais das colunas em seu arquivo CSV.
Exclusão em massa de usuários
# 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."
Observação
Certifique-se de que o arquivo CSV contenha as colunas necessárias (por exemplo, UserPrincipalName
). Além disso, ajuste o script para corresponder aos nomes reais das colunas em seu arquivo CSV.
Grupos
Download em massa de todos os 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"
Download em massa de membros de um 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"
Adicionar membros em massa
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
Remover membros em massa
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
Download em massa de todos os 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"