Udostępnij za pośrednictwem


Pobieranie listy użytkowników w witrynie Azure Portal

Microsoft Entra ID, część firmy Microsoft Entra, obsługuje operacje zbiorczego pobierania listy użytkowników.

Wymagane uprawnienia

Zarówno administratorzy, jak i użytkownicy niebędący administratorami mogą pobierać listy użytkowników.

Aby pobrać listę użytkowników

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

  1. Zaloguj się do centrum administracyjnego usługi Microsoft Entra.

  2. Wybierz Microsoft Entra ID.

  3. Wybierz pozycję Użytkownicy>Wszyscy użytkownicy Pobierz użytkowników.> Domyślnie wszystkie profile użytkowników są eksportowane.

  4. Na stronie Pobieranie użytkowników wybierz pozycję Rozpocznij, aby otrzymać plik CSV zawierający listę właściwości profilu użytkownika. W przypadku wystąpienia błędów plik z wynikami można pobrać i wyświetlić na stronie wyników operacji zbiorczej. Plik zawiera przyczynę każdego błędu.

    Zrzut ekranu przedstawiający wybieranie miejsca, w którym ma zostać wyświetlona lista użytkowników, którzy mają zostać pobrani.

Uwaga

Plik pobierania będzie zawierać przefiltrowaną listę użytkowników na podstawie zakresu zastosowanych filtrów.

Uwzględniane są następujące atrybuty użytkownika:

  • 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

Sprawdź stan

Stan oczekujących żądań zbiorczych można zobaczyć na stronie Wyników operacji zbiorczej.

Zrzut ekranu przedstawiający sprawdzanie stanu na stronie Wyniki operacji zbiorczych.

Jeśli wystąpią błędy, możesz pobrać i wyświetlić plik wyników na stronie wyników operacji zbiorczej. Plik zawiera przyczynę każdego błędu. Przesyłanie pliku musi być zgodne z podanym szablonem i zawierać dokładne nazwy kolumn. Aby uzyskać więcej informacji na temat ograniczeń operacji zbiorczych, zobacz Zbiorcze limity usługi pobierania.

Limity usługi zbiorczego pobierania

Należy pamiętać, że każde działanie operacji zbiorczych może działać przez maksymalnie jedną godzinę.

Operacje zbiorcze w portalu administracyjnym firmy Microsoft Entra mogą upłynął limit czasu i zakończyć się niepowodzeniem w bardzo dużych dzierżawach. To ograniczenie jest znanym problemem ze względu na ograniczenia skalowania. Zespół inżynierów firmy Microsoft pracuje nad nową usługą, która ostatecznie zajmie się tym ograniczeniem.

Uwaga

Podczas wykonywania operacji zbiorczych, takich jak importowanie lub tworzenie, może wystąpić problem, jeśli operacja zbiorcza nie zostanie ukończona w ciągu godziny. Aby obejść ten problem, zalecamy podzielenie liczby rekordów przetworzonych na partię. Na przykład przed rozpoczęciem eksportu można ograniczyć zestaw wyników przez filtrowanie według typu grupy lub nazwy użytkownika w celu zmniejszenia rozmiaru wyników. Uściślijąc filtry, zasadniczo ograniczasz dane zwracane przez operację zbiorczą.

Innym obejściem tego problemu jest użycie programu PowerShell do bezpośrednich wywołań interfejsu API programu Microsoft Graph. W przypadku niepowodzenia zbiorczego pobierania użytkowników i grup zalecamy GET-MgGroup -All użycie poleceń cmdlet programu PowerShell i GET-MgUser -All.

Następujące przykłady kodu programu PowerShell dotyczą operacji zbiorczych związanych z:

Użytkownicy

Zbiorcze pobieranie wszystkich użytkowników

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

Zbiorcze tworzenie użytkowników

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

Uwaga

Upewnij się, że plik CSV zawiera niezbędne kolumny (na przykład , DisplayNamei UserPrincipalNametak dalej). Ponadto dostosuj skrypt tak, aby był zgodny z rzeczywistymi nazwami kolumn w pliku CSV.

Zbiorcze usuwanie użytkowników

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

Uwaga

Upewnij się, że plik CSV zawiera niezbędne kolumny (na przykład UserPrincipalName). Ponadto dostosuj skrypt tak, aby był zgodny z rzeczywistymi nazwami kolumn w pliku CSV.

Grupy

Zbiorcze pobieranie wszystkich grup

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" 

Zbiorcze pobieranie członków grupy

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"  

Zbiorcze dodawanie członków

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 

Zbiorcze usuwanie elementów członkowskich

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 

Urządzenia

Zbiorcze pobieranie wszystkich urządzeń

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"  

Następne kroki