Importación de datos a mi directorio
Hay varias maneras de usar PowerShell para importar datos a su directorio, pero el método más común es usar un archivo CSV. Este archivo se puede crear manualmente, por ejemplo, con Excel, o bien se puede importar desde un origen de datos existente, como una base de datos SQL Database o una aplicación de RR. HH. Estos son algunos escenarios comunes para importar datos a Azure Active Directory:
Creación masiva de usuarios nuevos
Si desea crear de forma masiva usuarios en Azure Active Directory y tiene un archivo csv con información sobre los usuarios que desea crear, debe considerar lo siguiente:
- Debe establecer o implementar una convención de nomenclatura para los nombres de usuarios, los nombres para mostrar y los alias. Un ejemplo sería: los nombres de usuarios se construyen a partir del apellido del usuario, seguido de un punto y seguido del nombre. Por lo tanto, "John Smith" en contoso.com tendría como nombre de usuario "Smith.John@contoso.com". Deberá implementar reglas similares en los nombres para mostrar: puede que quiera agregar el nombre del departamento al nombre para mostrar, como en "John Smith (Contabilidad)", y para el alias.
- Debe implementar una convención para la contraseña inicial del usuario recién creado y deberá establecer una forma para que los usuarios nuevos reciban su contraseña de forma segura. Los métodos más comúnmente usados para esto son generar una contraseña aleatoria y enviarla por correo electrónico al usuario nuevo o a su administrador.
Suponiendo que ya estableció estos ajustes, ahora veamos qué debe incluir el archivo CSV que usamos para crear a los nuevos usuarios. Este es un ejemplo del archivo CSV que se usa en este artículo:
Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director
Para crear de forma masiva estos usuarios con PowerShell, será necesario realizar varios pasos:
- Configure una sesión de PowerShell con el directorio. Para esto, usaremos el cmdlet
Connect-AzureAD
. - Importe los datos del archivo CSV en la sesión de PowerShell con el cmdlet
Import-CSV
. - Para cada línea del archivo, cree los parámetros requeridos para crear un usuario nuevo
- Ejecute el cmdlet para crear el usuario con el cmdlet
New-AzureADUser
Si va a usar este script en un entorno de producción, probablemente también querrá agregar elementos adicionales, como los siguientes:
- Control de errores: qué se debe hacer si no se puede crear un usuario
- Informes de ejecución: cuando finalice el script, proporcione información general sobre lo que se hizo; por ejemplo, el número de usuarios que se creó, etc.
Omitiremos por ahora estos elementos y nos concentraremos en la funcionalidad central.
Este es el script que se puede usar para importar el archivo CSV tal como se muestra y poder crear usuarios. Para que este script funcione en el entorno, deberá actualizar los valores de la primera sección a los valores correctos para su propio entorno.
Nota: La contraseña de los usuarios nuevos debe cumplir con las reglas de complejidad de contraseña que estableció para el directorio. Nota: La cuenta de administrador que especifica aquí debe ser un administrador en el directorio que se especifica
###
### These are vairable you need to update to reflect your environment
###
$Admin = "Admin@contoso.com"
$AdminPassword = "my password"
$Directory = "contoso.com"
$NewUserPassword = "newuserspasswords"
$CsvFilePath = "C:\work\users.csv"
###
### Create a PowerShell connection to my directory. If you do not want to specify the password in the script, you can simply replace this with "Connect-AzureAD", which will prompt for a username and password.
###
$SecPass = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($Admin, $SecPass)
Connect-AzureAD -Credential $cred
###
### Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
###
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = $NewUserPassword
###
### Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
###
$NewUsers = import-csv -Path $CsvFilePath
###
### Loop through all new users in the file. We'll use the ForEach cmdlet for this.
###
Foreach ($NewUser in $NewUsers) {
###
### Construct the UserPrincipalName, the MailNickName and the DisplayName from the input data in the file
###
$UPN = $NewUser.Firstname + "." + $NewUser.LastName + "@" + $Directory
$DisplayName = $NewUser.Firstname + " " + $NewUser.Lastname + " (" + $NewUser.Department + ")"
$MailNickName = $NewUser.Firstname + "." + $NewUser.LastName
###
### Now that we have all the necessary data for to create the new user, we can execute the New-AzureADUser cmdlet
###
New-AzureADUser -UserPrincipalName $UPN -AccountEnabled $true -DisplayName $DisplayName -GivenName $NewUser.FirstName -MailNickName $MailNickName -Surname $NewUser.LastName -Department $Newuser.Department -JobTitle $NewUser.JobTitle -PasswordProfile $PasswordProfile
###
### End the Foreach loop
###
}
Nota: Después de ejecutar correctamente este script, los nuevos usuarios se habrán creado en Azure Active Directory. No ethat, ya que hemos especificado -AccountEnabled = $True, los nuevos usuarios pueden usar inmediatamente su contraseña para iniciar sesión en el directorio. Si no desea que las cuentas de usuario estén activas directamente después de ejecutar el script, puede especificar -AccountEnabled = $False y habilitar las cuentas más adelante mediante el cmdlet Set-AzureADUser.