Импорт данных в каталог
Существует несколько способов, которые можно использовать для импорта данных в каталог с помощью PowerShell. Но самый распространенный метод — воспользоваться CSV-файлом. Этот файл можно создать вручную, например с помощью Excel, или экспортировать из существующего источника данных, такого как база данных SQL или приложение по управлению персоналом. Ниже приведено несколько распространенных сценариев для импорта данных в Azure Active Directory.
Массовое создание пользователей
Если требуется массово создать пользователей в Azure Active Directory и есть CSV-файл, который содержит сведения о новых пользователях, которых необходимо создать, то следуйте приведенным ниже рекомендациям.
- Необходимо установить или реализовать соглашение об именовании для имен пользователей, отображаемых имен и псевдонимов. Пример: имя пользователя формируются из фамилии пользователя, за которой следует точка, а после точки — его имя. То есть пользователь John Smith в contoso.com будет иметь имя пользователя Smith.John@contoso.com. Необходимо будет реализовать аналогичные правила для отображаемых имен. Возможно, вы хотите добавить к отображаемому имени и к псевдониму название отдела (John Smith (Accounting)).
- Необходимо реализовать соглашение для начального пароля создаваемого пользователя и определить безопасный способ, с помощью которого новые пользователи будут получать пароль. Для этого обычно используются методы, которые создают случайный пароль и отправляют его новому пользователю или его руководителю по электронной почте.
Предположим, что вы уже выполнили эти действия. Давайте рассмотрим, что должен содержать CSV-файл, используемый для создания пользователей. Ниже приведен пример CSV-файла, используемого в этой статье.
Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director
Для массового создания пользователей с помощью PowerShell необходимо выполнить следующие шаги:
- Настройте сеанс PowerShell с подключением к вашему каталогу. Для этого мы используем командлет
Connect-AzureAD
. - Импортируйте данные из CSV-файла в сеанс PowerShell с помощью командлета
Import-CSV
. - Для каждой строки в файле создайте необходимые параметры, чтобы создать пользователя.
- Создайте пользователя, выполнив командлет
New-AzureADUser
.
Если вы используете этот сценарий в рабочей среде, то, вероятно, вам также потребуется добавить некоторые дополнительные компоненты, а именно:
- Обработка ошибок — что делать, если не удается создать пользователя.
- Отчет о выполнении — после завершения сценария предоставляется обзор выполненных действий (количество созданных пользователей и т. д.).
Давайте пока пропустим эти компоненты и сосредоточимся на основной функции.
Ниже приведен сценарий, который можно использовать для импорта CSV-файла и создания пользователей. Чтобы этот сценарий выполнялся в вашей среде, потребуется обновить значения в первом разделе, заменив их правильными для вашей среды значениями.
Примечание. Пароли новых пользователей должны соответствовать правилам сложности паролей, заданным для вашего каталога. Примечание. Учетная запись администратора, которая здесь указывается, должна также иметь права администратора в указанном вами каталоге.
###
### These are vairable you need to update to reflect your environment
###
$Admin = "Admin@contoso.com"
$AdminPassword = "my password"
$Directory = "contoso.com"
$NewUserPassword = "newuserspasswords"
$CsvFilePath = "C:\work\users.csv"
###
### Create a PowerShell connection to my directory. If you do not want to specify the password in the script, you can simply replace this with "Connect-AzureAD", which will prompt for a username and password.
###
$SecPass = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($Admin, $SecPass)
Connect-AzureAD -Credential $cred
###
### Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
###
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = $NewUserPassword
###
### Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
###
$NewUsers = import-csv -Path $CsvFilePath
###
### Loop through all new users in the file. We'll use the ForEach cmdlet for this.
###
Foreach ($NewUser in $NewUsers) {
###
### Construct the UserPrincipalName, the MailNickName and the DisplayName from the input data in the file
###
$UPN = $NewUser.Firstname + "." + $NewUser.LastName + "@" + $Directory
$DisplayName = $NewUser.Firstname + " " + $NewUser.Lastname + " (" + $NewUser.Department + ")"
$MailNickName = $NewUser.Firstname + "." + $NewUser.LastName
###
### Now that we have all the necessary data for to create the new user, we can execute the New-AzureADUser cmdlet
###
New-AzureADUser -UserPrincipalName $UPN -AccountEnabled $true -DisplayName $DisplayName -GivenName $NewUser.FirstName -MailNickName $MailNickName -Surname $NewUser.LastName -Department $Newuser.Department -JobTitle $NewUser.JobTitle -PasswordProfile $PasswordProfile
###
### End the Foreach loop
###
}
Примечание. После успешного выполнения этого сценария новые пользователи будут созданы в Azure Active Directory. Не так как мы указали -AccountEnabled = $True, новые пользователи могут немедленно использовать пароль для входа в каталог. Если вы не хотите, чтобы учетные записи пользователей были активны непосредственно после запуска сценария, можно указать -AccountEnabled = $False и включить учетные записи позже с помощью командлета Set-AzureADUser.