Importar usuarios de AD desde CSV con PowerShell
Hay ocasiones en las que desea importar usuarios de forma masiva a Active Directory. Ya realizó una exportación de usuarios de AD a un archivo CSV. Pero ahora le gusta usar ese archivo CSV para importar los usuarios nuevamente a AD. El enfoque más rápido y excelente es utilizar PowerShell. En este artículo, aprenderá cómo importar usuarios de AD desde CSV con PowerShell.
Importar script de PowerShell de usuarios de AD
El script de PowerShell Import-ADUsers.ps1 revisará el archivo CSV y creará usuarios de AD con la siguiente información por usuario:
Nombre completo
Nombre de pila
Apellido
-
Nombre para mostrar
Nombre de inicio de sesión del usuario
Nombre principal de usuario
Calle
Ciudad
Estado
Código Postal
País
Título profesional
Departamento
-
Compañía
Gerente
UNED
Descripción
Oficina
Número de teléfono
Correo electrónico
Móvil
Notas
Estado de la cuenta
Nota: La cuenta tendrá la contraseña establecida como P@ssw0rd1234. Cambie esto a una contraseña diferente en el script de PowerShell.
Cómo importar usuarios a Active Directory desde un archivo CSV
Sigamos los pasos e importemos de forma masiva usuarios de Active Directory desde un archivo CSV con PowerShell.
Paso 1: crear un archivo CSV con los usuarios
Sin un archivo CSV, no puede utilizar el script e importar los usuarios a AD.
Si ya tiene un Active Directory, puede ejecutar el script en el artículo Exportar usuarios de AD a CSV con PowerShell. Después de eso, usa ese archivo CSV.
Supongamos que no tiene un Active Directory para exportar los usuarios de AD a un archivo CSV y solo desea un ejemplo de archivo CSV para poder editarlo y usarlo; descargue el archivo CSV ImportADUsers.csv.
Paso 2: preparar el script de PowerShell para importar usuarios de AD
Descargue y coloque el script de PowerShell Import-ADUsers.ps1 en la carpeta del controlador de dominio C:\scripts. Si no tiene una carpeta de scripts, cree una.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnale el nombre Import-ADUsers.ps1 y colócalo en la carpeta C:\scripts.
<#
.SYNOPSIS
Import-ADUsers.ps1
.DESCRIPTION
Import Active Directory users from CSV file.
.LINK
www.alitajran.com/import-ad-users-from-csv-powershell
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 04/24/2023 - Initial version
#>
# Define the CSV file location and import the data
$Csvfile = "C:\scripts\AllADUsers_202304240919.csv"
$Users = Import-Csv $Csvfile
# Import the Active Directory module
Import-Module ActiveDirectory
# Loop through each user
foreach ($User in $Users) {
$GivenName = $User.'First name'
$Surname = $User.'Last name'
$DisplayName = $User.'Display name'
$SamAccountName = $User.'User logon name'
$UserPrincipalName = $User.'User principal name'
$StreetAddress = $User.'Street'
$City = $User.'City'
$State = $User.'State/province'
$PostalCode = $User.'Zip/Postal Code'
$Country = $User.'Country/region'
$JobTitle = $User.'Job Title'
$Department = $User.'Department'
$Company = $User.'Company'
$ManagerDisplayName = $User.'Manager'
$Manager = if ($ManagerDisplayName) {
Get-ADUser -Filter "DisplayName -eq '$ManagerDisplayName'" -Properties DisplayName |
Select-Object -ExpandProperty DistinguishedName
}
$OU = $User.'OU'
$Description = $User.'Description'
$Office = $User.'Office'
$TelephoneNumber = $User.'Telephone number'
$Email = $User.'E-mail'
$Mobile = $User.'Mobile'
$Notes = $User.'Notes'
$AccountStatus = $User.'Account status'
# Check if the user already exists in AD
$UserExists = Get-ADUser -Filter { SamAccountName -eq $SamAccountName } -ErrorAction SilentlyContinue
if ($UserExists) {
Write-Warning "User '$SamAccountName' already exists in Active Directory."
continue
}
# Create new user parameters
$NewUserParams = @{
Name = "$GivenName $Surname"
GivenName = $GivenName
Surname = $Surname
DisplayName = $DisplayName
SamAccountName = $SamAccountName
UserPrincipalName = $UserPrincipalName
StreetAddress = $StreetAddress
City = $City
State = $State
PostalCode = $PostalCode
Country = $Country
Title = $JobTitle
Department = $Department
Company = $Company
Manager = $Manager
Path = $OU
Description = $Description
Office = $Office
OfficePhone = $TelephoneNumber
EmailAddress = $Email
MobilePhone = $Mobile
AccountPassword = (ConvertTo-SecureString "P@ssw0rd1234" -AsPlainText -Force)
Enabled = if ($AccountStatus -eq "Enabled") { $true } else { $false }
ChangePasswordAtLogon = $true # Set the "User must change password at next logon" flag
}
# Add the info attribute to OtherAttributes only if Notes field contains a value
if (![string]::IsNullOrEmpty($Notes)) {
$NewUserParams.OtherAttributes = @{info = $Notes }
}
try {
# Create the new AD user
New-ADUser @NewUserParams
Write-Host "User $SamAccountName created successfully." -ForegroundColor Cyan
}
catch {
# Failed to create the new AD user
Write-Warning "Failed to create user $SamAccountName. $_"
}
}Línea 21: Edite la ubicación del archivo CSV.
Línea 87: Cambiar contraseña.
Paso 3: Ejecute el script de PowerShell para importar usuarios de AD
Ejecute PowerShell como administrador. Cambie la ruta a la carpeta de scripts. Ejecute el script de PowerShell para importar usuarios de AD desde un archivo CSV. Espere hasta que se complete.
PS C:\> cd c:\scripts
PS C:\scripts> .\Import-ADUsers.ps1El guión mostrará si:
El usuario se crea exitosamente.
El usuario ya existe.
El usuario no se puede crear con una advertencia.
WARNING: User 'Kylie.Davidson' already exists in Active Directory.
WARNING: User 'Leonard.Clark' already exists in Active Directory.
WARNING: User 'Madeleine.Fisher' already exists in Active Directory.
WARNING: User 'Melanie.Scott' already exists in Active Directory.
WARNING: User 'Nicholas.Murray' already exists in Active Directory.
WARNING: User 'Piers.Bower' already exists in Active Directory.
WARNING: User 'Ruth.Dickens' already exists in Active Directory.
User Sebastian.Nolan created successfully.
User Zoe.Roberts created successfully.Paso 4: verificar los usuarios de AD
Verifique que los usuarios se hayan creado correctamente en Active Directory.
Leer más: Agregue usuarios a varios grupos con PowerShell »
Conclusión
Aprendió a importar usuarios de AD desde CSV con PowerShell. Si utiliza el script de PowerShell Exportar usuarios de AD y desea volver a importar los usuarios a Active Directory, ejecute el script de PowerShell Importar usuarios de AD.
Disfrutaste este artículo? También te puede interesar Exportar usuarios deshabilitados desde Active Directory. No olvides seguirnos y compartir este artículo.