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:
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.
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator grup.
Wybierz Microsoft Entra ID.
Uwaga
Właściciele grup mogą również importować zbiorczo członków grup, których są właścicielami.
Wybierz pozycję Grupy>Wszystkie grupy.
Otwórz grupę, do której dodajesz członków, a następnie wybierz pozycję Członkowie.
Na stronie Członkowie wybierz operacje zbiorcze, a następnie wybierz pozycję Importuj elementy członkowskie.
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.
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.
Na stronie Zbiorcze importowanie członków grupy w obszarze Przekaż plik CSV przejdź do pliku. Po wybraniu pliku zostanie uruchomiona walidacja pliku CSV.
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.
Gdy plik przejdzie walidację, wybierz pozycję Prześlij , aby uruchomić operację zbiorczą, która importuje członków grupy do grupy.
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.
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 , DisplayName
i UserPrincipalName
tak 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"