Automatización con Alertas: Facilitando la Gestión de Usuarios en Active Directory
Introducción
En el mundo de la administración de sistemas, la automatización es clave para agilizar tareas repetitivas y minimizar errores. En este post, aprenderemos a crear un script en PowerShell que automatiza el proceso de creación de usuarios de red en Active Directory, desde la generación de contraseñas hasta el envío de notificaciones por correo electrónico.
1- Crear un Script para Generar Archivo CSV
En esta primera parte, vamos a crear un script que nos permita generar un archivo CSV con los datos necesarios para la creación masiva de usuarios en Active Directory.
Ahora creamos una carpeta llamada CreateUser y lo guardamos.
2- Crear el Script para la Creación de Usuarios de Red Desde PowerShell
Ahora, vamos a dar un paso hacia la eficiencia al crear un script que automatizará la creación masiva de usuarios de red utilizando el archivo CSV generado previamente. Esta solución optimizará el proceso, agilizando la gestión de usuarios en Active Directory y garantizando una implementación uniforme y sin errores.
###Importar el archivo CSV y crear usuarios en Active Directory#####
Import-Csv "C:\CreateUser\new.csv" -Delimiter ";" | ForEach-Object {
$nombreCompleto = "$($_.GivenName) $($_.Lastname)"
$correoElectronico = $_.EmailAddress
$samAccountName = $_.SamAccountName # Captura el nombre de usuario de red
New-ADUser -Name $nombreCompleto `
-SamAccountName $samAccountName `
-UserPrincipalName $_.UserPrincipalName `
-GivenName $_.GivenName `
-Surname $_.Lastname `
-DisplayName $_.DisplayName `
-EmailAddress $correoElectronico `
-AccountPassword (ConvertTo-SecureString "TUCONTRASEÑA" -AsPlainText -Force) `
-Enabled $true
}
Donde dice TUCONTRASEÑA, cambialo por una contraseña aleatoria que van a tener los usuarios que estaras creando
3- Configurando el Envío de Correo Electrónico
Este script permite a los administradores enviar notificaciones por correo electrónico sobre la creación de nuevos usuarios en Active Directory. Utilizando las credenciales de Gmail, el script envía automáticamente un correo electrónico al administrador o a las personas relevantes, proporcionando información crucial sobre el usuario recién creado, como su nombre completo, nombre de usuario de red, correo electrónico y fecha de creación. Los administradores pueden personalizar fácilmente el contenido del correo electrónico para adaptarlo a las necesidades específicas de su entorno.
$credential = New-Object System.Management.Automation.PSCredential("TUCORREO@gmail.com", (ConvertTo-SecureString "TU-CLAVE-GENERADA-GMAIL" -AsPlainText -Force))
$body = @"
Usuario creado: $($nombreCompleto)
Usuario de Red: $($samAccountName)
Correo electrónico creado: $($correoElectronico)
Fecha de creación: $(Get-Date)
"@
Send-MailMessage -SmtpServer "smtp.gmail.com" `
-Port 587 `
-UseSsl `
-Credential $credential `
-From "TUCORREO@gmail.com" `
-To "NOTIFICAR1@emprendevalentin.com","NOTIFICAR2@emprendevalentin.com" `
-Subject "Nuevo usuario creado: $($nombreCompleto)" `
-Body $body
TUCORREO@GMAIL.COM: Aquí vamos a ingresar el correo que estara enviando la alerta a los administradores
From “TUCORREO@gmail.com“: Aquí vamos a poner el correo que estará enviando la notificacion, que es la misma del primer punto.
To “NOTIFICAR1@emprendevalentin.com“,”NOTIFICAR2@emprendevalentin.com” ` : Aquí vamos a poner a los administradores que les estará llegando esta alerta.
4- Cómo Generar Contraseñas de Aplicación en Gmail para Scripts de PowerShell
- Accede a tu cuenta de Google: Ve a la página de configuración de seguridad de tu cuenta de Google. Puedes acceder a ella desde tu cuenta de Gmail haciendo clic en tu avatar en la esquina superior derecha y seleccionando “Cuenta de Google”.
- Navega a la sección de seguridad: Dentro de la configuración de tu cuenta de Google, busca la opción de “Seguridad” en el menú de la izquierda.
- Habilita la verificación en dos pasos (opcional pero recomendado): Si aún no lo has hecho, te recomiendo habilitar la verificación en dos pasos para mejorar la seguridad de tu cuenta. Esto agregará una capa adicional de protección al requerir un código de verificación adicional además de tu contraseña para acceder a tu cuenta.
- Genera una contraseña de aplicación: Busca la sección de “Contraseñas de aplicación” o “Aplicaciones menos seguras” y selecciona la opción para generar una nueva contraseña de aplicación.
- Selecciona la aplicación y el dispositivo: En la lista de aplicaciones, selecciona “Otra (nombre personalizado)” y escribe un nombre descriptivo para identificar la aplicación o dispositivo desde el cual utilizarás la contraseña. Por ejemplo, podrías llamarlo “App Notificar AD”.
- Genera la contraseña: Haz clic en “Generar” y Google te proporcionará una contraseña única. Esta será la contraseña que utilizarás en tu script de PowerShell en lugar de tu contraseña normal de Gmail.
- Utiliza la contraseña en tu script: Una vez que hayas generado la contraseña de aplicación, cópiala y utilízala en lugar de tu contraseña normal en el script de PowerShell. Asegúrate de mantener esta contraseña segura y no compartirla con nadie más.
5- Cómo Nos Llega La Alerta al Correo
Esta alerta nos llega de la siguiente forma una vez ejecutado el script
6- Script Completo Listo Para Modificar y Ejecutar
###Importar el archivo CSV y crear usuarios en Active Directory#####
Import-Csv "C:\CreateUser\new.csv" -Delimiter ";" | ForEach-Object {
$nombreCompleto = "$($_.GivenName) $($_.Lastname)"
$correoElectronico = $_.EmailAddress
$samAccountName = $_.SamAccountName # Captura el nombre de usuario de red
New-ADUser -Name $nombreCompleto `
-SamAccountName $samAccountName `
-UserPrincipalName $_.UserPrincipalName `
-GivenName $_.GivenName `
-Surname $_.Lastname `
-DisplayName $_.DisplayName `
-EmailAddress $correoElectronico `
-AccountPassword (ConvertTo-SecureString "Password$18" -AsPlainText -Force) `
-Enabled $true
}
#########Configurar las credenciales de Gmail###########
$credential = New-Object System.Management.Automation.PSCredential("TUCORREO@gmail.com", (ConvertTo-SecureString "TU-CLAVE-GENERADA" -AsPlainText -Force))
#########Envío de correo electrónico##########
$body = @"
Usuario creado: $($nombreCompleto)
Usuario de Red: $($samAccountName)
Correo electrónico creado: $($correoElectronico)
Fecha de creación: $(Get-Date)
"@
Send-MailMessage -SmtpServer "smtp.gmail.com" `
-Port 587 `
-UseSsl `
-Credential $credential `
-From "TUCORREO@gmail.com" `
-To "NOTIFICAR1@GMAIL.COM","NOTIFICAR2@GMAIL.COM" ``
-Subject "Nuevo usuario creado: $($nombreCompleto)" `
-Body $body
La automatización es una herramienta poderosa en el arsenal de cualquier administrador de sistemas. Con PowerShell y el módulo Active Directory, puedes simplificar y agilizar tareas como la creación de usuarios en Active Directory. Esperamos que este tutorial te haya sido útil y te motive a explorar más sobre automatización en tu entorno de trabajo