Cree usuarios de AD de forma masiva y envíe sus credenciales por correo electrónico mediante PowerShell
Cada año, las instituciones educativas matriculan a cientos de estudiantes. Como resultado, los ingenieros de sistemas de las instituciones requieren tiempo y esfuerzo adicionales para crear una cuenta AD para cada estudiante y luego informarles manualmente sobre sus nombres de usuario y contraseñas.
Esta guía paso a paso facilitará un poco la vida de los ingenieros de sistemas con la ayuda de secuencias de comandos de PowerShell. El script le permite crear cuentas de usuario de AD a partir de un archivo CSV, asignarles contraseñas aleatorias y luego enviar esos nombres de usuario y contraseñas a los nuevos estudiantes en correos electrónicos de bienvenida.
He utilizado los siguientes cmdlets en mi script. Haga clic en cualquier cmdlet individual para obtener más detalles.
- Import-CSV (para importar detalles de usuario)
- Get-Credential (para obtener credenciales de correo electrónico)
- Get-Random (para generar contraseñas)
- New-ADUser (para crear nuevos usuarios de AD)
- Get-Content (para leer el contenido del correo electrónico desde un archivo)
- Send-MailMessage (para enviar correos electrónicos a los usuarios)
Para enviar los correos electrónicos con credenciales a los nuevos usuarios, estoy usando un servidor SMTP de Gmail. Sin embargo, puede configurar el script para su entorno de TI y su servidor de correo.
El siguiente script se escribió y probó en DC ejecutándose en Windows Server 2016. Si necesita ejecutar el script en Windows Server 2012, 2012 R2 o 2008, es posible que deba importar algunos módulos de PowerShell.
Antes de ejecutar el script, verifique los siguientes requisitos previos:
- Un archivo CSV con la información de los estudiantes (nombre, apellido, nombre de cuenta de Sam y dirección de correo electrónico)
- Un archivo de texto o Word (doc o docx) con un mensaje de correo electrónico de bienvenida
- Una conexión a Internet habilitada (si desea utilizar un servidor SMTP de Gmail)
Si ha cumplido con todos estos requisitos, puede crear cuentas AD y enviar correos electrónicos de bienvenida de forma masiva siguiendo dos sencillos pasos:
Paso 1.
Copie y pegue el script en un archivo de texto y guárdelo con la extensión .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
Paso 2.
Abra PowerShell con sus privilegios elevados y ejecute el archivo de secuencia de comandos que creó en el Paso 1.
Una vez que haya ejecutado correctamente el script, los usuarios podrán iniciar sesión inmediatamente en el dominio. Puede verificar la creación de la cuenta en la consola Usuarios y equipos de Active Directory y enviar por correo electrónico la notificación sobre la creación de la cuenta utilizando el campo CC en el cmdlet Send-MailMessage.
Consulte mi publicación reciente para aprender cómo descubrir nuevos usuarios agregados en AD en las últimas 24 horas y enviar sus credenciales por correo electrónico mediante PowerShell. También puede probar este procedimiento: Exportar usuarios específicos desde Active Directory si se le solicita con frecuencia que exporte usuarios de AD a CSV.
No dude en dejar sus sugerencias en los comentarios para que podamos mejorar la funcionalidad del script.