Erstellen Sie AD-Benutzer in Massen und senden Sie deren Anmeldeinformationen per E-Mail mit PowerShell
Mar 30, 2017
Jedes Jahr immatrikulieren Bildungseinrichtungen Hunderte von Studierenden. Infolgedessen benötigen die Systemingenieure der Einrichtungen zusätzliche Zeit und Mühe, um ein AD-Konto für jeden Studierenden anzulegen und dann die Studierenden manuell über ihre Benutzernamen und Passwörter zu informieren.
Dieser Schritt-für-Schritt-Leitfaden wird das Leben von Systemingenieuren mit Hilfe von PowerShell-Skripten etwas erleichtern. Das Skript ermöglicht es Ihnen, AD-Benutzerkonten aus einer CSV-Datei zu erstellen, ihnen zufällige Passwörter zuzuweisen und dann diese Benutzernamen und Passwörter in Willkommens-E-Mails an die neuen Studierenden zu senden.
Ich habe die folgenden Cmdlets in meinem Skript verwendet. Klicken Sie auf ein beliebiges Cmdlet, um weitere Details zu erhalten.
- Import-CSV (zum Importieren von Benutzerdetails)
- Get-Credential (zum Abrufen von E-Mail-Anmeldeinformationen)
- Get-Random (zur Passwortgenerierung)
- New-ADUser (zum Erstellen neuer AD-Benutzer)
- Get-Content (zum Lesen von E-Mail-Inhalten aus einer Datei)
- Send-MailMessage (zum Senden von E-Mails an Benutzer)
Um die E-Mails mit den Anmeldeinformationen an die neuen Benutzer zu senden, verwende ich einen Gmail SMTP-Server. Sie können das Skript jedoch an Ihre IT-Umgebung und Ihren Mailserver anpassen. Das untenstehende Skript wurde geschrieben und auf einem DC getestet, der auf Windows Server 2016 läuft. Wenn Sie das Skript auf Windows Server 2012, 2012 R2 oder 2008 ausführen müssen, müssen Sie möglicherweise einige PowerShell-Module importieren.
Bevor Sie das Skript ausführen, überprüfen Sie die folgenden Prerequisites:
- Eine CSV-Datei mit den Informationen der Studierenden (Vorname, Nachname, Sam-Kontoname und E-Mail-Adresse)
- Eine Text- oder Word-Datei (doc oder docx) mit einer Willkommens-E-Mail-Nachricht
- Eine aktivierte Internetverbindung (wenn Sie einen Gmail SMTP-Server verwenden möchten)
Ausgewählte verwandte Inhalte:
Wenn Sie alle diese Anforderungen erfüllt haben, können Sie AD-Konten erstellen und Willkommens-E-Mails in großen Mengen versenden, indem Sie zwei einfache Schritte befolgen:
Schritt 1.
Kopieren und fügen Sie das Skript in eine Textdatei ein und speichern Sie es mit der .ps1-Erweiterung:
##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
Schritt 2.
Öffnen Sie PowerShell mit Ihren erhöhten Privilegien und führen Sie die Skriptdatei aus, die Sie in Schritt 1 erstellt haben.
Sobald das Skript erfolgreich ausgeführt wurde, können sich die Benutzer sofort im Domain anmelden. Sie können die Kontoerstellung in der Active Directory Users and Computers-Konsole überprüfen und die Benachrichtigung über die Kontoerstellung mithilfe des CC-Feldes im Send-MailMessage-Cmdlet per E-Mail versenden.
Schauen Sie sich meinen letzten Beitrag an, um zu erfahren, wie Sie neue Benutzer, die in AD hinzugefügt wurden, innerhalb der letzten 24 Stunden entdecken und ihre Anmeldeinformationen per PowerShell versenden können. Sie können auch diesen How-to: Export Specific Users from Active Directory ausprobieren, falls Sie häufig gebeten werden, AD-Benutzer in CSV zu exportieren.
Bitte zögern Sie nicht, Ihre Vorschläge in den Kommentaren zu hinterlassen, damit wir die Funktionalität des Skripts verbessern können.
Teilen auf
Erfahren Sie mehr
Über den Autor
Karim Buzdar
Support-Techniker
IT-Ingenieur und Microsoft Certified Solutions Associate (MCSA) für Serverinfrastruktur. Als technischer Autor konzentriert sich Karim auf Microsoft Directory Services und PowerShell.
Erfahren Sie mehr zu diesem Thema
Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz
Beispiel für Risikoanalyse: Wie man Risiken bewertet
Das CIA-Dreieck und seine Anwendung in der realen Welt
Was ist elektronisches Records Management?
Quantitative Risikoanalyse: Jährliche Verlust Erwartung