Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

PowerShell로 AD 사용자를 대량 생성하고 자격 증명을 이메일로 전송

PowerShell로 AD 사용자를 대량 생성하고 자격 증명을 이메일로 전송

Mar 17, 2023

매년 교육 기관에서는 수백 명의 학생을 모집합니다. 그 결과, 기관의 시스템 엔지니어들은 각 학생에 대해 AD 계정을 생성하고, 학생들에게 사용자 이름과 비밀번호를 수동으로 알려야 하므로 추가 시간과 노력이 필요합니다.

이 단계별 가이드는 PowerShell 스크립팅의 도움으로 시스템 엔지니어들의 업무를 조금 더 쉽게 만들어 줍니다. 이 스크립트를 사용하면 CSV 파일에서 AD 사용자 계정을 만들고, 각 계정에 무작위 비밀번호를 할당한 다음, 환영 이메일로 새 학생들에게 사용자 이름과 비밀번호를 보낼 수 있습니다.

다음 cmdlet을 제 스크립트에서 사용했습니다. 자세한 내용을 보려면 각 cmdlet을 클릭하세요.

새 사용자에게 자격 증명(크리덴셜)과 함께 이메일을 보내기 위해 Gmail SMTP 서버를 사용하고 있습니다. 하지만 스크립트를 사용자의 IT 환경과 메일 서버에 맞게 구성할 수 있습니다.
아래 스크립트는 Windows Server 2016에서 실행 중인 DC에서 작성하고 테스트했습니다. Windows Server 2012, 2012 R2, 또는 2008에서 스크립트를 실행해야 한다면 일부 PowerShell 모듈을 가져와야 할 수 있습니다.

스크립트를 실행하기 전에 다음 필수 조건:

  • 학생 정보가 포함된 CSV 파일(이름, 성, Sam 계정 이름, 이메일 주소)
  • 환영 이메일 메시지가 포함된 텍스트 또는 Word(doc 또는 docx) 파일
  • 활성화된 인터넷 연결( Gmail SMTP 서버를 사용하려는 경우)

엄선한 관련 콘텐츠:

이 모든 요구 사항을 충족했다면, 두 가지 간단한 단계에 따라 AD 계정을 만들고 대량으로 환영 이메일을 보낼 수 있습니다:

1단계.

스크립트를 텍스트 파일에 복사하여 붙여넣고, 다음과 함께 저장하세요..ps1 확장자:

      ##Beginning of functions

Function Format-Email {
 
Param ([string]$WCEmailContent,[string]$UserPrincipalName,[string]$UserPassword)

return $WCEmailContent + "User Name = $UserPrincipalName
Password = $UserPassword
Thank You
IT Department"
}

Function Send-Email {

Param ($Email, $Credential,[string]$WCEmailContent)
 
$From = "karim.buzdar@gmail.com"
$subject = "Domain Account Details"
$Body = $WCEmailContent
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"

Send-MailMessage -from $From -to $Email -Subject $subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Credential $Credential -UseSsl

}

###End of Functions

##### Beginning of main programme

$Credential = (get-Credential) #Getting email credentials to be used for From field in Email message
$UsersFilePath = "C:UsersAdministrator.YOURDOMAINDesktopWCusers.csv" # Files of users information (First name, Last name, Sam account name, Email address)
$WCEmailFile = "C:UsersAdministrator.YOURDOMAINDesktopWCWCEmail.docx" # File containing welcome email message

import-csv -path $UsersFilePath | foreach {

$Name = ($_.GivenName + " " + $_.LastName)
$UserPrincipalName = ($_.SamAccountName + ”@yourdomain.com”)
$UserPassword = Get-Random -maximum 20000 -Minimum 100
$UserPassword = "@" + "user" + $UserPassword.ToString()
#Create user in Students OU

new-aduser -name $Name -enabled $true -GivenName $_.GivenName –surname $_.lastName -accountpassword (convertto-securestring $UserPassword -asplaintext -force) -changepasswordatlogon $true -samaccountname $_.SamAccountName –userprincipalname $UserPrincipalName -EmailAddress $_.EmailAddress -Path 'OU=Students,DC=yourdomain,DC=com' -ErrorAction Stop

$WCEmailContent = Format-Email -WCEmailContent (Get-Content $WCEmailFile) -UserPrinciPalName $UserPrincipalName -UserPassword $UserPassword

Send-Email -Email $_.EmailAddress -Credential $Credential -WCEmailContent $WCEmailContent

Write-Host "User Created: $Name"
}

### End of main program
      

2단계.

관리 권한으로 PowerShell을 열고, 1단계에서 생성한 스크립트 파일을 실행합니다.

스크립트를 성공적으로 실행하면 사용자는 즉시 도메인에 로그인할 수 있습니다. Active Directory Users and Computers 콘솔에서 계정 생성 여부를 확인하고, Send-MailMessage cmdlet에서 CC 필드를 사용하여 계정 생성 알림을 이메일로 보낼 수 있습니다.

최근 게시물을 확인해서 AD에 추가된 신규 사용자를 지난 24시간 내에 찾아내는 방법 과 PowerShell을 사용해 해당 사용자의 자격 증명을 이메일로 보내는 방법을 알아보세요. How-to: Export Specific Users from Active Directory 또한 AD 사용자를 CSV로 내보내달라는 요청을 자주 받는 경우 참고해 보셔도 좋습니다.

스크립트 기능을 개선할 수 있도록 의견을 댓글로 남겨 주세요.

공유하기

더 알아보기

저자 소개

Asset Not Found

Karim Buzdar

지원 엔지니어

서버 인프라 분야의 IT 엔지니어이자 Microsoft Certified Solutions Associate (MCSA)입니다. 기술 저자로서 Karim은 Microsoft Directory Services와 PowerShell에 집중합니다.