PowerShell: Como importar usuarios en Active Directory desde un fichero CSV

Hace unos meses os explique en esta entrada como podíais exportar a Excel los usuarios de Active Directory. Hoy como algunos me habéis pedido voy a explicaros como podemos hacer el proceso inverso, es decir, importar usuarios en Active Directory desde un fichero CSV.

Este método os resultará muy útil para aquellos casos que tengáis que dar de alta muchos usuarios ya que nos permitirá hacerlo de una forma fácil y rápida sin tener que ir creándolos uno a uno desde la consola de Usuarios y Equipos de Active Directory.

Preparación Excel (CSV)

En primer lugar crearemos un fichero Excel con los siguientes campos:

  • FullName
  • givenName
  • company
  • department
  • title
  • telephoneNumber
  • City
  • sAMAccountName
  • Password

Nota: Si queréis podéis añadir más atributos en función de vuestras necesidades.

Una vez tenemos el Excel relleno el siguiente paso será exportarlo a un fichero CSV (delimitado por comas).

Importar CSV mediante PowerShell

Creamos un fichero de texto con el siguiente código y lo guardaremos con la extensión .ps1

Nota: En el caso de haber añadido o quitado campos en el momento de preparar el Excel tendréis que hacer estas mismas modificaciones en el script.

Import-Module ActiveDirectory

#Sustituir por vuestro dominio
$Domain="@tipstecnologicos.es"

#Sustituir por vuestra OU y dominio donde quereis realizar la importacion
$UserOu="OU=Tutorial,DC=tipstecnologicos,DC=es"

#Sustituir indicando la ruta y el nombre de vuestro fichero csv
$NewUsersList=Import-CSV "C:\Tutorial\Importar_Usuarios.csv" -delimiter ";"

ForEach ($User in $NewUsersList) {

$FullName=$User.FullName
$givenName=$User.givenName
$Company=$User.company
$Department=$User.department
$title=$User.title
$telephoneNumber=$User.telephoneNumber
$City=$User.City
$sAMAccountName=$User.sAMAccountName
$userPrincipalName=$User.sAMAccountName+$Domain
$userPassword=$User.Password
$expire=$null

New-ADUser -PassThru -Path $UserOu -Enabled $True -ChangePasswordAtLogon $True -AccountPassword (ConvertTo-SecureString $userPassword -AsPlainText -Force) -CannotChangePassword $False -City $City -Company $Company -Department $Department -Title $title -OfficePhone $telephoneNumber -DisplayName $FullName -GivenName $givenName -Name $FullName -SamAccountName $sAMAccountName -UserPrincipalName $userPrincipalName
}

Nota: Como buena practica en materia de seguridad he añadido los parámetros ChangePasswordAtLogon y CannotChangePassword al script para que los usuarios, en el primer inicio de sesión, cambien obligatoriamente la contraseña que definimos en la plantilla Excel.

Copiamos tanto el fichero .ps1 como el csv en nuestro servidor de dominio y ejecutamos el script (archivo .ps1).

Nota: Si os sale un error indicando que la ejecución de script se encuentra deshabilitada, podéis pasaros por esta entrada donde explico como podéis activarlo.

Y listo siguiendo estos sencillos pasos ya tendremos creados los nuevos usuarios en nuestro dominio.

Espero os haya servido de utilidad.

Entradas relacionadas

Deja un comentario