다음을 통해 공유


내 디렉터리로 데이터 가져오기

여러 가지 방법으로 PowerShell을 사용하여 디렉터리에 데이터를 가져올 수 있지만 가장 자주 사용되는 방법은 CSV 파일을 사용하는 것입니다. 이 파일은 Excel 등을 사용해서 수동으로 만들 수도 있고 SQL 데이터베이스 또는 HR 애플리케이션과 같은 기존 데이터 원본에서 내보낼 수 있습니다. Azure Active Directory로 데이터 가져오기를 위한 몇 가지 일반적인 시나리오는 다음과 같습니다.

대량으로 새 사용자 만들기

Azure Active Directory에서 사용자를 대량으로 만들려고 하며 만들려는 새 사용자에 대한 정보가 포함된 csv 파일이 있는 경우 다음과 같은 사항을 고려할 수 있습니다.

  1. 사용자 이름, 표시 이름 및 별칭에 대한 명명 규칙을 설정하거나 구현해야 합니다. 예를 들면 사용자의 이름은 사용자의 성, 마침표, 이름 순서로 구성할 수 있습니다. 따라서 contoso.com의 "John Smith"의 사용자 이름은 "Smith.John@contoso.com"이 될 수 있습니다. 표시 이름에도 비슷한 규칙을 구현해야 합니다. 예를 들어 "John Smith (Accounting)"와 같이 표시 이름에 부서 이름을 추가할 수 있습니다. 별칭의 경우도 마찬가지입니다.
  2. 새로 만든 사용자의 초기 암호에 대한 규칙을 구현해야 하고 새 사용자가 안전한 방법으로 자신의 암호를 받을 수 있는 방법을 파악해야 합니다. 이를 위해 일반적으로 사용되는 방법은 임의 암호를 생성하고 새 사용자나 해당 관리자에게 전자 메일로 보내는 것입니다.

이러한 방법이 설정되었다고 가정하고, 새 사용자를 만드는 데 사용하는 CSV 파일에 어떤 내용이 포함되어야 하는지 살펴보겠습니다. 다음은 이 문서에서 사용하는 CSV 파일의 예입니다.

Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director

PowerShell을 사용하여 이러한 사용자를 대량으로 만들려면 다음 몇 가지 단계를 수행해야 합니다.

  1. 디렉터리에서 PowerShell 세션을 설정합니다. 여기서는 Connect-AzureAD cmdlet을 사용합니다.
  2. Import-CSV cmdlet을 사용하여 PowerShell 세션에서 CSV 파일의 데이터를 가져옵니다.
  3. 파일의 각 줄에 대해 새 사용자를 만들기 위한 필수 매개 변수를 만듭니다.
  4. New-AzureADUser cmdlet을 사용 및 실행하여 새 사용자를 만듭니다.

프로덕션 환경에서 이 스크립트를 사용할 경우 다음과 같은 몇몇 추가 부분을 추가할 수도 있습니다.

  • 오류 처리 - 사용자를 만들 수 없는 경우 수행할 작업
  • 실행 보고 - 스크립트가 완료되면 수행된 작업의 개요(예: 만든 사용자 수 등) 제공

지금은 이러한 부분을 생략하고 핵심 기능만 집중적으로 살펴봅니다.

다음은 표시된 것처럼 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 cmdlet을 사용하여 계정을 사용하도록 설정할 수 있습니다.