Importowanie danych do katalogu
Istnieje kilka sposobów importowania danych do katalogu za pomocą programu PowerShell. Najczęściej używaną metodą jest jednak użycie pliku CSV. Ten plik można utworzyć ręcznie, na przykład za pomocą programu Excel, lub można go wyeksportować z istniejącego źródła danych, takiego jak baza danych SQL lub aplikacja do obsługi działu kadr. Poniżej przedstawiono niektóre typowe scenariusze dotyczące importowania danych do usługi Azure Active Directory:
Zbiorcze tworzenie nowych użytkowników
Jeśli chcesz zbiorczo utworzyć użytkowników w usłudze Azure Active Directory i masz plik CSV zawierający informacje o nowych użytkownikach do utworzenia, weź pod uwagę poniższe kwestie:
- Musisz ustalić lub zaimplementować konwencję nazewnictwa dotyczącą nazw użytkowników, nazw wyświetlanych i aliasów. Oto przykład: nazwa użytkownika to nazwisko użytkownika, następnie kropka, a po niej imię użytkownika. W takim przypadku nazwa użytkownika „John Smith” w domenie contoso.com to „Smith.John@contoso.com”. Konieczne będzie zaimplementowanie podobnych reguł dotyczących aliasów i nazw wyświetlanych — na przykład możesz dodać nazwę działu do nazwy wyświetlanej: „John Smith (Księgowość)”.
- Musisz zaimplementować konwencję dotyczącą początkowych haseł dla nowo utworzonych użytkowników oraz określić sposób bezpiecznego dostarczania haseł nowym użytkownikom. Najczęściej używaną metodą jest generowanie losowego hasła i wysyłanie go do nowego użytkownika lub jego menedżera w wiadomości e-mail.
Po ustaleniu tych reguł zobacz, co musi zawierać plik CSV, który zostanie użyty do utworzenia nowych użytkowników. Oto przykładowy plik CSV używany w ramach tego artykułu:
Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director
Aby zbiorczo utworzyć tych użytkowników za pomocą programu PowerShell, konieczne będzie wykonanie kilku czynności:
- Skonfiguruj sesję programu PowerShell dla katalogu. W tym celu użyjemy polecenia cmdlet
Connect-AzureAD
. - Zaimportuj dane z pliku CSV w ramach sesji programu PowerShell za pomocą polecenia cmdlet
Import-CSV
. - Dla każdego wiersza w pliku utwórz wymagane parametry w celu utworzenia nowego użytkownika
- Wykonaj polecenie cmdlet
New-AzureADUser
, aby utworzyć nowego użytkownika
W przypadku użycia tego skryptu w środowisku produkcyjnym prawdopodobnie warto będzie dodać pewne dodatkowe elementy, takie jak:
- Obsługa błędów — co zrobić, jeśli nie można utworzyć użytkownika
- Raportowanie wykonania — po zakończeniu działania skryptu podanie opisu wykonanych przez niego czynności, na przykład liczby utworzonych użytkowników
Teraz pominiemy te elementy i skupimy się na podstawowej funkcjonalności.
Oto skrypt, za pomocą którego możesz zaimportować przedstawiony wcześniej plik CSV i utworzyć nowych użytkowników. Aby ten skrypt zadziałał w Twoim środowisku, musisz zaktualizować wartości w pierwszej sekcji do prawidłowych wartości dla Twojego środowiska.
Uwaga: hasła dla nowych użytkowników muszą być zgodne z regułami dotyczącymi złożoności haseł ustalonymi dla katalogu. Uwaga: konto administratora, które tutaj podajesz, musi być kontem administratora w podanym katalogu
###
### 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
###
}
Uwaga: po udanym wykonaniu tego skryptu nowi użytkownicy zostaną utworzeni w usłudze Azure Active Directory. Nie etat, ponieważ określono parametr -AccountEnabled = $True, nowi użytkownicy mogą natychmiast użyć swojego hasła do zalogowania się do katalogu. Jeśli nie chcesz, aby konta użytkowników działały bezpośrednio po uruchomieniu skryptu, możesz określić parametr -AccountEnabled = $False i włączyć konta później przy użyciu polecenia cmdlet Set-AzureADUser.