Creación de usuarios desde CSV con PowerShell.
Buenos días, vamos a continuar con la serie sobre administración con Powershell de funciones de dominio, en este caso vamos a ver como generar usuarios de forma masiva importándolos desde un archivo CSV.
Para ello lo primero que vamos a hacer es generar un excell que luego convertiremos a csv, el excell tendrá el siguiente aspecto:
La primera fila corresponde a los campos que vamos a cargar en las variables que veremos mas adelante, el resto cada fila corresponde a los datos de un usuario, los campos usados son orientativos, ya que los campos que rellenéis para cada usuario en vuestro Active Directory variaran.
Una vez tenemos el excell completo con los usuarios, simplemente lo guardáis como CSV y lo guardáis o en local en el servidor desde el que valláis a ejecutar el script o en una ubicación de red accesible desde vuestro DC, ya que si recordáis la finalidad de todos estos scripts es conectarnos en remoto a nuestro dc y poder realizar estas tareas, lo optimo es que el csv este en una ruta de red que sea accesible por el dc al que conectaremos y desde el que lanzaremos los cmdlets.
La parte del script que se encarga de hacer esto es la siguiente:
#Creacion de usuarios con CSV
Write-Host ‘ CREACION DE USUARIOS CON CSV’ -ForegroundColor “Yellow”
Import-Csv -Delimiter “;” -path “\cabinaUsuarios.csv” | foreach-object {
Importamos el csv, el parámetro –Delimiter nos sirve para especificar cual es carácter que delimita los campos en el csv, en mi caso e usado punto y coma, seguidamente concatenamos con un foreach-object que se encargara de por cada línea de usuario que contenga el csv cargar los campos en las siguientes variables:
$GivenName=$_.GivenName
$SurName=$_.Surname
$Name=$GivenName+’ ‘+$SurName
$User=$_.User
$Upn=$User+’@’+$domain
$Department=$_.Department
$Email=$User+’@’+’unir.net’
$Pass=$_.Pass
Ciframos la variable $pass:
$enc_password = (ConvertTo-SecureString $Pass -AsPlainText -Force)
Generamos el usuario con los valores cargados en las variables, el modificador –path nos permite seleccionar un destino para los usuarios creados, si no se especifica será la OU Users por defecto, en mi caso tengo una OU especifica donde se crearan los usuarios generados por script.
New-ADUser -Name $Name -GivenName $GivenName -Surname $SurName -SamAccountName $User -UserPrincipalName $Upn -Enable $true -Description $Department -EmailAddress $Email -AccountPassword $enc_password -path “OU=ScriptUsers,DC=sergio,DC=cloud”
}
La operación se repetirá hasta que recorra todas las líneas del csv creando los usuarios correspondientes.
Como veis es muy sencillo y rápido generar usuarios de forma masiva con este método.
Saludos