ค้นหาเว็บไซต์

สร้างผู้ใช้ AD จำนวนมากและส่งอีเมลข้อมูลประจำตัวของตนโดยใช้ PowerShell


ทุกปี สถาบันการศึกษารับนักเรียนหลายร้อยคน ด้วยเหตุนี้ วิศวกรระบบของสถาบันจึงต้องใช้เวลาและความพยายามเพิ่มเติมในการสร้างบัญชี AD สำหรับนักเรียนแต่ละคน จากนั้นจึงแจ้งให้นักเรียนทราบเกี่ยวกับชื่อผู้ใช้และรหัสผ่านด้วยตนเอง

คำแนะนำทีละขั้นตอนนี้จะทำให้ชีวิตของวิศวกรระบบง่ายขึ้นเล็กน้อยด้วยความช่วยเหลือจากการเขียนสคริปต์ PowerShell สคริปต์ช่วยให้คุณสามารถสร้างบัญชีผู้ใช้ AD จากไฟล์ CSV กำหนดรหัสผ่านแบบสุ่มให้กับพวกเขา จากนั้นส่งชื่อผู้ใช้และรหัสผ่านเหล่านั้นไปยังนักเรียนใหม่ทางอีเมลต้อนรับ

ฉันใช้ cmdlets ต่อไปนี้ในสคริปต์ของฉัน คลิกที่ cmdlet แต่ละรายการเพื่อดูรายละเอียดเพิ่มเติม

  • Import-CSV (สำหรับการนำเข้ารายละเอียดผู้ใช้)
  • รับข้อมูลรับรอง (สำหรับรับข้อมูลรับรองอีเมล)
  • Get-Random (สำหรับสร้างรหัสผ่าน)
  • New-ADUser (สำหรับการสร้างผู้ใช้ AD ใหม่)
  • รับเนื้อหา (สำหรับการอ่านเนื้อหาอีเมลจากไฟล์)
  • Send-MailMessage (สำหรับส่งอีเมลถึงผู้ใช้)

หากต้องการส่งอีเมลพร้อมข้อมูลประจำตัวไปยังผู้ใช้ใหม่ ฉันใช้เซิร์ฟเวอร์ Gmail SMTP อย่างไรก็ตาม คุณสามารถกำหนดค่าสคริปต์ให้เหมาะกับสภาพแวดล้อมด้านไอทีและเซิร์ฟเวอร์อีเมลของคุณได้
สคริปต์ด้านล่างเขียนและทดสอบบน DC ที่ทำงานบน Windows Server 2016 หากคุณต้องการเรียกใช้สคริปต์บน 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 และคอมพิวเตอร์ และส่งอีเมลแจ้งเตือนเกี่ยวกับการสร้างบัญชีโดยใช้ฟิลด์ CC ใน Send-MailMessage cmdlet

ดูโพสต์ล่าสุดของฉันเพื่อเรียนรู้วิธีค้นหาผู้ใช้ใหม่ที่เพิ่มใน AD ภายใน 24 ชั่วโมงที่ผ่านมา และส่งอีเมลข้อมูลประจำตัวโดยใช้ PowerShell คุณยังอาจลองใช้วิธีการนี้: ส่งออกผู้ใช้เฉพาะจาก Active Directory หากระบบขอให้คุณส่งออกผู้ใช้ AD เป็น CSV บ่อยครั้ง

โปรดแสดงความคิดเห็นของคุณในความคิดเห็นเพื่อให้เราสามารถปรับปรุงฟังก์ชันการทำงานของสคริปต์ได้

บทความที่เกี่ยวข้อง