Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Crear usuarios de AD en masa y enviar sus credenciales por correo electrónico usando PowerShell

Crear usuarios de AD en masa y enviar sus credenciales por correo electrónico usando PowerShell

Mar 30, 2017

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 de AD para cada estudiante y luego informar manualmente a los estudiantes sobre sus nombres de usuario y contraseñas.

Esta guía paso a paso hará la vida de los ingenieros de sistemas un poco más fácil con la ayuda de scripts de PowerShell. El script te permite crear cuentas de usuario de AD desde un archivo CSV, asignar contraseñas aleatorias a las mismas 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.

Para enviar los correos electrónicos con las credenciales a los nuevos usuarios, estoy utilizando un servidor SMTP de Gmail. Sin embargo, puedes configurar el script para adaptarlo a tu entorno de TI y a tu propio servidor de correo. El script que aparece a continuación fue escrito y probado en un controlador de dominio (DC) que ejecuta Windows Server 2016. Si necesitas ejecutarlo en Windows Server 2012, 2012 R2 o 2008, es posible que tengas que importar algunos módulos de PowerShell.

Antes de ejecutar el script, verifique los siguientes prerequisites:

  • Un archivo CSV con la información de los estudiantes (nombre, apellido, nombre de cuenta 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 activa (si desea utilizar un servidor SMTP de Gmail)

Contenido relacionado seleccionado:

Si ha cumplido con todos estos requisitos, puede crear cuentas de AD y enviar correos electrónicos de bienvenida en masa 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 script que creó en el Paso 1.

Una vez que haya ejecutado el script con éxito, los usuarios pueden iniciar sesión inmediatamente en el dominio. Puede verificar la creación de la cuenta en la consola de Active Directory Users and Computers y enviar la notificación sobre la creación de la cuenta utilizando el campo CC en el cmdlet Send-MailMessage.

Echa un vistazo a 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 usando PowerShell. También puedes intentar esto How-to: Export Specific Users from Active Directory si te piden frecuentemente exportar usuarios de AD a CSV.

No dude en dejar sus sugerencias en los comentarios para que podamos mejorar la funcionalidad del script.

Compartir en

Aprende más

Acerca del autor

Asset Not Found

Karim Buzdar

Ingeniero de Soporte

Ingeniero de TI y Microsoft Certified Solutions Associate (MCSA) para Server Infrastructure. Como autor técnico, Karim se centra en Microsoft Directory Services y PowerShell.