Zbiorcze dodawanie członków grupy w identyfikatorze Entra firmy Microsoft

Do grupy można dodać wielu członków, używając pliku wartości rozdzielanych przecinkami (CSV) w celu zbiorczego importowania członków grupy w portalu dla identyfikatora Entra firmy Microsoft.

Omówienie szablonu CSV

Pobierz i wypełnij szablon zbiorczego przekazywania woluminów CSV, aby pomyślnie dodać zbiorczo członków grupy Firmy Microsoft Entra. Szablon CSV może wyglądać następująco:

Zrzut ekranu przedstawiający arkusz kalkulacyjny do przekazywania i objaśnień wyjaśniających przeznaczenie i wartości dla każdego wiersza i kolumny.

Struktura szablonu CSV

Wiersze pobranego szablonu CSV to:

  • Numer wersji: pierwszy wiersz zawierający numer wersji musi zostać uwzględniony w pliku CSV przekazywania.
  • Nagłówki kolumn: format nagłówków kolumn to< Nazwa> elementu [PropertyName]< Wymagana lub pusta.> Może to być na przykład Member object ID or user principal name [memberObjectIdOrUpn] Required. Niektóre starsze wersje szablonu mogą mieć niewielkie odmiany. W przypadku zmian członkostwa w grupie można wybrać identyfikator obiektu członkowskiego lub nazwę główną użytkownika.
  • Wiersz przykładów: szablon zawiera wiersz przykładów dopuszczalnych wartości dla każdej kolumny. Musisz usunąć wiersz przykłady i zastąpić go własnymi wpisami.

Więcej wskazówek

  • Nie można usunąć ani zmodyfikować pierwszych dwóch wierszy szablonu przekazywania lub nie można przetworzyć przekazywania.
  • Wymagane kolumny są wyświetlane jako pierwsze.
  • Nie zalecamy dodawania nowych kolumn do szablonu. Wszystkie inne dodawane kolumny są ignorowane i nie są przetwarzane.
  • Zalecamy pobranie najnowszej wersji szablonu CSV tak często, jak to możliwe.
  • Dodaj co najmniej dwie nazwy UPN użytkowników lub identyfikatory obiektów, aby pomyślnie przekazać plik.

Zbiorcze importowanie członków grupy

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 firmy Microsoft Entra co najmniej jako administrator grup.

  2. Wybierz Microsoft Entra ID.

    Uwaga

    Właściciele grup mogą również importować zbiorczo członków grup, których są właścicielami.

  3. Wybierz pozycję Grupy>Wszystkie grupy.

  4. Otwórz grupę, do której dodajesz członków, a następnie wybierz pozycję Członkowie.

  5. Na stronie Członkowie wybierz operacje zbiorcze, a następnie wybierz pozycję Importuj elementy członkowskie.

  6. Na stronie Zbiorcze importowanie członków grupy wybierz pozycję Pobierz , aby pobrać szablon pliku CSV z wymaganymi właściwościami członka grupy.

    Zrzut ekranu przedstawiający polecenie Importuj członków znajduje się na stronie profilu grupy.

  7. Otwórz plik CSV i dodaj wiersz dla każdego członka grupy, który chcesz zaimportować do grupy. Wymagane wartości to identyfikator obiektu członkowskiego lub główna nazwa użytkownika. Następnie zapisz plik.

    Zrzut ekranu przedstawiający plik CSV zawierający nazwy i identyfikatory elementów członkowskich do zaimportowania.

  8. Na stronie Zbiorcze importowanie członków grupy w obszarze Przekaż plik CSV przejdź do pliku. Po wybraniu pliku zostanie uruchomiona walidacja pliku CSV.

  9. Po zweryfikowaniu zawartości pliku na stronie importu zbiorczego zostanie wyświetlony komunikat Plik przekazany pomyślnie. Jeśli występują błędy, należy je naprawić przed przesłaniem zadania.

  10. Gdy plik przejdzie walidację, wybierz pozycję Prześlij , aby uruchomić operację zbiorczą, która importuje członków grupy do grupy.

  11. Po zakończeniu operacji importowania zostanie wyświetlone powiadomienie o pomyślnym zakończeniu operacji zbiorczej.

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 importowania.

Sprawdzanie stanu importu

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

Zrzut ekranu przedstawiający opcję Sprawdź stan na stronie Wyników operacji zbiorczej.

Aby uzyskać szczegółowe informacje o każdym elemencie wiersza w ramach operacji zbiorczej, wybierz wartości w kolumnach # Success (Powodzenie), # Failure (Niepowodzenie) lub Total Requests (Łączna liczba żądań ). Jeśli wystąpiły błędy, zostaną wyświetlone przyczyny niepowodzenia.

Limity usługi importowania zbiorczego

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