Udostępnij za pośrednictwem


Zbiorcze tworzenie użytkowników w identyfikatorze Entra firmy Microsoft

Microsoft Entra ID, część firmy Microsoft Entra, obsługuje operacje tworzenia i usuwania użytkowników zbiorczych oraz obsługuje pobieranie list użytkowników. Wystarczy wypełnić szablon wartości rozdzielonych przecinkami (CSV), który można pobrać z witryny Microsoft Entra ID.

Wymagane uprawnienia

Aby zbiorczo tworzyć użytkowników w portalu administracyjnym, musisz zalogować się jako co najmniej administrator użytkowników.

Omówienie szablonu CSV

Pobierz i wypełnij szablon csv zbiorczego przekazywania, aby ułatwić zbiorcze tworzenie użytkowników firmy Microsoft Entra. Pobrany szablon CSV może wyglądać następująco:

Zrzut ekranu przedstawiający arkusz kalkulacyjny służący do przekazywania i objaśniania opisujących przeznaczenie i wartości dla każdego wiersza i kolumny.

Ostrzeżenie

Jeśli dodasz tylko jeden wpis przy użyciu szablonu CSV, musisz zachować wiersz 3 i dodać nowy wpis do wiersza 4.

Upewnij się, że dodano .csv rozszerzenie pliku i usunięto wszystkie spacje wiodące przed userPrincipalName, passwordProfilei accountEnabled.

Struktura szablonu CSV

Wiersze pobranego szablonu CSV są następujące:

  • Numer wersji: pierwszy wiersz zawierający numer wersji musi być uwzględniony w przekazanym pliku CSV.
  • Nagłówki kolumn: format nagłówków kolumn to< Nazwa> elementu [PropertyName]< Wymagana lub pusta.> Na przykład Name [displayName] Required. Niektóre starsze wersje szablonu mogą mieć niewielkie odmiany.
  • Wiersz przykładów: w szablonie znajduje się wiersz przykładów dopuszczalnych wartości dla każdej kolumny. Musisz usunąć wiersz przykłady i zastąpić go własnymi wpisami.

Dodatkowe wskazówki

  • 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 dodawane kolumny są ignorowane i nie są przetwarzane.
  • Zalecamy pobranie najnowszej wersji szablonu CSV tak często, jak to możliwe.
  • Upewnij się, że nie ma niezamierzonego odstępu przed/po dowolnym polu. W przypadku głównej nazwy użytkownika takie białe znaki spowodują niepowodzenie importu.
  • Upewnij się, że wartości w polu Początkowe hasło są zgodne z aktualnie aktywnymi zasadami haseł.

Aby zbiorczo tworzyć użytkowników

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator użytkowników.

  2. Wybierz Microsoft Entra ID.

  3. Wybierz pozycję Wszyscy użytkownicy>>zbiorczo utwórz.

  4. Na stronie Zbiorcze tworzenie użytkownika wybierz pozycję Pobierz, aby otrzymać prawidłowy plik wartości rozdzielonych przecinkami (CSV) właściwości użytkownika, a następnie dodaj użytkowników, które chcesz utworzyć.

    Zrzut ekranu przedstawiający sposób wybierania lokalnego pliku CSV, w którym zostanie wyświetlona lista użytkowników, których chcesz dodać.

  5. Otwórz plik CSV i dodaj wiersz dla każdego użytkownika, który chcesz utworzyć. Jedynymi wymaganymi wartościami są Nazwa, Główna nazwa użytkownika, Początkowe hasło i Blokuj logowanie (Tak/Nie). Następnie zapisz plik.

    Zrzut ekranu przedstawiający przykład pliku CSV zawierającego nazwy i identyfikatory użytkowników do utworzenia.

  6. Na stronie Zbiorcze tworzenie użytkownika w obszarze Przekaż plik CSV przejdź do pliku. Po wybraniu pliku i kliknięciu przycisku Prześlij zostanie uruchomiona walidacja pliku CSV.

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

  8. Gdy plik przejdzie walidację, wybierz pozycję Prześlij , aby rozpocząć operację zbiorczą, która importuje nowych użytkowników.

  9. Po zakończeniu operacji importowania zostanie wyświetlone powiadomienie o stanie zadania 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.

Sprawdź stan

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

Zrzut ekranu przedstawiający sposób sprawdzania stanu operacji na stronie wyników operacji zbiorczych.

Następnie możesz sprawdzić, czy użytkownicy, którzy utworzyli, istnieją w organizacji Microsoft Entra w witrynie Azure Portal lub przy użyciu programu PowerShell.

Weryfikowanie użytkowników

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator użytkowników.
  2. Wybierz Microsoft Entra ID.
  3. Wybierz pozycję Wszyscy użytkownicy>.
  4. W obszarze Pokaż wybierz pozycję Wszyscy użytkownicy i sprawdź, czy utworzoni użytkownicy są wyświetlani.

Weryfikowanie użytkowników za pomocą programu PowerShell

Uruchom następujące polecenie:

Get-MgUser -Filter "UserType eq 'Member'"

Powinien zostać wyświetlony komunikat o tym, że są wyświetlani użytkownicy, których utworzono.

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