Поделиться через


Массовое создание пользователей в идентификаторе Microsoft Entra

Идентификатор Microsoft Entra, часть Microsoft Entra, поддерживает операции массового создания и удаления пользователей и поддерживает скачивание списков пользователей. Просто заполните шаблон с разделителями-запятыми (CSV), который можно скачать с идентификатора Microsoft Entra.

Необходимые разрешения

Для массового создания пользователей на портале администрирования необходимо войти по крайней мере администратором пользователей.

Общие сведения о шаблоне CSV

Скачайте и заполните шаблон csv-файла массовой отправки, чтобы помочь вам успешно создавать пользователей Microsoft Entra в массовом режиме. Загружаемый шаблон CSV будет похож на этот пример:

Снимок экрана: электронная таблица для отправки и вызова, объясняющая назначение и значения для каждой строки и столбца.

Предупреждение

При добавлении только одной записи с помощью шаблона CSV необходимо сохранить строку 3 и добавить новую запись в строку 4.

Убедитесь, что вы добавите .csv расширение файла и удалите все ведущие пробелы до userPrincipalName, passwordProfileи accountEnabled.

Структура шаблона CSV

В скачанном шаблоне CSV содержатся следующие строки.

  • Номер версии: первая строка, содержащая номер версии, должна быть включена в csv-файл отправки.
  • Заголовки столбцов: формат заголовков столбцов: <Имя элемента> [PropertyName] <Обязательное или пустое>. Например, Name [displayName] Required. Некоторые старые версии шаблона могут иметь небольшие отличия.
  • Примеры строки: мы включили в шаблон строку примеров допустимых значений для каждого столбца. Строку примеров необходимо удалить, заменив реальными значениями.

Дополнительные рекомендации

  • Первые две строки шаблона отправки нельзя удалять или изменять, иначе отправка не будет обработана.
  • Обязательные столбцы перечислены первыми.
  • Мы не рекомендуем добавлять в шаблон новые столбцы. Любые дополнительные столбцы игнорируются и не обрабатываются.
  • Мы рекомендуем скачивать свежие версии шаблона CSV как можно чаще.
  • Убедитесь в отсутствии пробелов в начале и конце каждого поля. Наличие таких пробелов у имени субъекта-пользователя приведет к ошибке импорта.
  • Убедитесь, что значения в поле Первоначальный пароль соответствуют действующей в данный момент политике паролей.

Массовое создание пользователей

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор пользователя.

  2. Выберите Microsoft Entra ID.

  3. Выберите все пользователи>>массового создания.

  4. На странице Массовое создание пользователей выберите Скачать, чтобы получить допустимый файл данных с разделителями-запятыми (CSV) со свойствами пользователя, а затем добавьте пользователей, которых нужно создать.

    Снимок экрана: выбор локального CSV-файла, в котором перечислены пользователи, которые вы хотите добавить.

  5. Откройте CSV-файл и добавьте строку для каждого пользователя, которого нужно создать. Единственными обязательными значениями являются Имя, Имя участника-пользователя, Начальный пароль и Блокировать вход (да/нет). Затем сохраните файл.

    Снимок экрана: пример CSV-файла, содержащего имена и идентификаторы создаваемых пользователей.

  6. На странице Массовое создание пользователей найдите нужный файл в разделе "Отправка CSV-файла". Когда вы выберете файл и нажмете Отправить, запустится проверка CSV-файла.

  7. После проверки содержимого файла вы увидите сообщение Файл успешно передан. Если будут обнаружены ошибки, их нужно исправить для отправки задания.

  8. Когда файл проходит проверку, нажмите кнопку "Отправить ", чтобы запустить массовую операцию, импортируемую новыми пользователями.

  9. По завершении операции импорта вы увидите уведомление о состоянии задания массовой операции.

При возникновении ошибок можно скачать и просмотреть файл результатов на странице результатов массовой операции. Файл содержит причину каждой ошибки. Отправка файла должна соответствовать предоставленному шаблону и содержать точные имена столбцов. Дополнительные сведения об ограничениях массовых операций см. в разделе "Ограничения службы массового импорта".

Проверить состояние

Состояние всех ожидающих выполнения массовых запросов можно просмотреть на странице Результаты массовой операции.

Снимок экрана: проверка состояния операции на странице результатов массовых операций.

Затем можно проверить наличие созданных пользователей в организации Microsoft Entra в портал Azure или с помощью PowerShell.

Проверка пользователей

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор пользователя.
  2. Выберите Microsoft Entra ID.
  3. Выберите всех пользователей>.
  4. В разделе Показать выберите Все пользователи и убедитесь, что созданные пользователи отображаются.

Проверка пользователей с помощью PowerShell

Выполните следующую команду:

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

Вы увидите, что созданные пользователи указаны.

Ограничения службы массового импорта

Следует помнить, что каждое действие массовых операций может выполняться до одного часа.

Массовые операции на портале администрирования Microsoft Entra могут истекнуть и завершиться сбоем в очень крупных клиентах. Это ограничение является известной проблемой из-за ограничений масштабирования. Команда инженеров Майкрософт работает над новой службой, которая в конечном итоге будет решать это ограничение.

Примечание.

При выполнении массовых операций, таких как импорт или создание, может возникнуть проблема, если массовая операция не завершается в течение часа. Чтобы обойти эту проблему, рекомендуется разделить количество записей, обработанных на пакет. Например, перед началом экспорта можно ограничить результирующий набор, отфильтровав тип группы или имя пользователя, чтобы уменьшить размер результатов. Уточняя фильтры, вы, по сути, ограничиваете данные, возвращаемые массовой операцией.

Еще одним решением этой проблемы является использование PowerShell для прямых вызовов API Microsoft Graph. Для массового скачивания пользователей и групп рекомендуется использовать командлеты GET-MgGroup -All PowerShell и GET-MgUser -All.

Следующие примеры кода PowerShell предназначены для массовых операций, связанных с:

Пользователи

Массовое скачивание всех пользователей

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

Массовое создание пользователей

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

Примечание.

Убедитесь, что CSV-файл содержит необходимые столбцы (например, DisplayName, UserPrincipalNameи т. д.). Кроме того, настройте скрипт в соответствии с фактическими именами столбцов в CSV-файле.

Массовое удаление пользователей

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

Примечание.

Убедитесь, что CSV-файл содержит необходимые столбцы (например, UserPrincipalName). Кроме того, настройте скрипт в соответствии с фактическими именами столбцов в CSV-файле.

Группы

Массовое скачивание всех групп

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" 

Массовое скачивание членов группы

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"  

Массовое добавление участников

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 

Массовое удаление участников

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 

.

Массовое скачивание всех устройств

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"  

Следующие шаги