Toplu Olarak AD Kullanıcıları Oluşturun ve PowerShell Kullanarak Kimlik Bilgilerini E-postayla Gönderin
Her yıl eğitim kurumları yüzlerce öğrenciyi kabul etmektedir. Sonuç olarak kurumların sistem mühendisleri, her öğrenci için bir AD hesabı oluşturmak ve ardından öğrencilere kullanıcı adları ve şifrelerini manuel olarak bildirmek için ekstra zamana ve çabaya ihtiyaç duyuyor.
Bu adım adım kılavuz, PowerShell komut dosyası oluşturmanın yardımıyla sistem mühendislerinin hayatını biraz daha kolaylaştıracak. Komut dosyası, bir CSV dosyasından AD kullanıcı hesapları oluşturmanıza, bunlara rastgele parolalar atamanıza ve ardından bu kullanıcı adlarını ve parolaları hoş geldiniz e-postalarıyla yeni öğrencilere göndermenize olanak tanır.
Komut dosyamda aşağıdaki cmdlet'leri kullandım. Daha fazla ayrıntı için herhangi bir cmdlet'e tıklayın.
- Import-CSV (kullanıcı ayrıntılarını içe aktarmak için)
- Get-Credential (e-posta kimlik bilgilerini almak için)
- Get-Random (şifre oluşturmak için)
- Yeni-ADUser (yeni AD kullanıcıları oluşturmak için)
- Get-Content (bir dosyadan e-posta içeriğini okumak için)
- Send-MailMessage (kullanıcılara e-posta göndermek için)
Kimlik bilgileri içeren e-postaları yeni kullanıcılara göndermek için bir Gmail SMTP sunucusu kullanıyorum. Ancak komut dosyasını BT ortamınıza ve posta sunucunuza göre yapılandırabilirsiniz.
Aşağıdaki betik, Windows Server 2016 üzerinde çalışan DC'de yazılmış ve test edilmiştir. Betiği Windows Server 2012, 2012 R2 veya 2008'de çalıştırmanız gerekiyorsa bazı PowerShell modüllerini içe aktarmanız gerekebilir.
Komut dosyasını çalıştırmadan önce aşağıdaki önkoşulları kontrol edin:
- Öğrencilerin bilgilerini (ad, soyadı, Sam hesap adı ve e-posta adresi) içeren bir CSV dosyası
- Hoş geldiniz e-posta mesajı içeren bir metin veya Word (doc veya docx) dosyası
- Etkinleştirilmiş bir İnternet bağlantısı (bir Gmail SMTP sunucusu kullanmak istiyorsanız)
Tüm bu gereksinimleri karşıladıysanız, iki basit adımı izleyerek AD hesapları oluşturabilir ve toplu olarak karşılama e-postaları gönderebilirsiniz:
1. Adım.
Komut dosyasını kopyalayıp bir metin dosyasına yapıştırın ve .ps1 uzantısıyla kaydedin:
##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. Adım.
PowerShell'i yükseltilmiş ayrıcalıklarınızla açın ve 1. Adımda oluşturduğunuz betik dosyasını yürütün.
Komut dosyasını başarıyla çalıştırdığınızda kullanıcılar hemen etki alanına giriş yapabilir. Active Directory Kullanıcıları ve Bilgisayarları konsolunda hesap oluşturma işlemini doğrulayabilir ve Send-MailMessage cmdlet'indeki CC alanını kullanarak hesap oluşturma bildirimini e-postayla gönderebilirsiniz.
Son 24 saat içinde AD'ye eklenen yeni kullanıcıları nasıl keşfedeceğinizi ve kimlik bilgilerini PowerShell kullanarak e-postayla nasıl göndereceğinizi öğrenmek için son gönderime göz atın. Ayrıca, sık sık AD kullanıcılarını CSV'ye aktarmanız istenirse, şu Nasıl Yapılır: Belirli Kullanıcıları Active Directory'den Dışa Aktarmayı da deneyebilirsiniz.
Komut dosyasının işlevselliğini geliştirebilmemiz için lütfen önerilerinizi yorumlarınızda bırakmaktan çekinmeyin.