สร้างผู้ใช้ 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 บ่อยครั้ง
โปรดแสดงความคิดเห็นของคุณในความคิดเห็นเพื่อให้เราสามารถปรับปรุงฟังก์ชันการทำงานของสคริปต์ได้