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

5 comentarios en «PowerShell: Como importar usuarios en Active Directory desde un fichero CSV»

  1. Excelente Sergio Portillo e seguido tus instrucciones al pie de la letra y me han sido de gran ayuda estoy muy agradecido gracias por tu aporte al mundo del conocimiento.

    Responder
  2. Buen dia,

    Tengo varios usuarios que se encuentran en diferentes OU para moverlos a una OU en especifica.

    Agradezco si puede ayudarme

    Responder
    • Hola Oscar,

      En primer lugar tendrías que exportarlos. En esta entrada explico como realizar una exportación a Excel y posteriormente importarlo siguiendo los pasos de esta entrada.

      Saludos.

      Responder
  3. Muy bueno sergio me funco al pelo solo que le inclui el scriptpath pero no me lo pega
    era donde tenia apuntado los archivos .bat para el mapeo de unidades, tenes idea que podra ser
    saludos cordiales

    Responder
    • Hola Pablo,

      No entiendo muy bien cual es el problema, ¿podrías detallármelo un poco más por favor?.

      Saludos.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.