Partager via


Importation de données dans mon annuaire

Il existe plusieurs façons d’utiliser PowerShell pour importer des données dans votre annuaire, mais la méthode la plus couramment utilisée consiste à utiliser un fichier CSV. Ce fichier peut soit être créé manuellement, par exemple à l’aide d’Excel, soit être exporté à partir d’une source de données, comme une base de données SQL ou une application de RH. Voici quelques scénarios courants pour importer des données dans Azure Active Directory :

Création en bloc de nouveaux utilisateurs

Si vous souhaitez créer en bloc des utilisateurs dans Azure Active Directory et que vous avez un fichier csv qui contient des informations sur les nouveaux utilisateurs à créer, voici quelques points à garder à l’esprit :

  1. Vous devez établir ou implémenter une convention d’affectation de noms pour les noms d’utilisateur, noms d’affichage et alias. Par exemple : les noms d’utilisateur sont construits à partir de leur nom de famille de l’utilisateur, suivi d’un point, puis de leur prénom. Ainsi « John Smith » dans contoso.com aurait un nom d’utilisateur de « Smith.John@contoso.com ». Vous devez implémenter des règles similaires pour les noms d’affichage : vous souhaiterez peut-être ajouter le nom du service pour le nom d’affichage, comme dans « John Smith (Comptabilité) - » et pour l’alias.
  2. Vous devez implémenter une convention pour le mot de passe initial de l’utilisateur qui vient d’être créé, et vous devez trouver un moyen pour les nouveaux utilisateurs de recevoir leur mot de passe de manière sécurisée. Les méthodes couramment utilisées pour cela génèrent un mot de passe aléatoire et l’envoient au nouvel utilisateur ou à son responsable.

En supposant que vous avez déterminé cela, intéressons-nous à ce que le fichier CSV que nous utilisons pour créer les nouveaux utilisateurs doit contenir. Voici un exemple de fichier CSV que nous utilisons dans cet article :

Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director

Pour créer en bloc ces utilisateurs à l’aide de PowerShell, nous devons passer par plusieurs étapes :

  1. Configurez une session PowerShell avec votre annuaire ; nous allons utiliser l’applet de commande Connect-AzureAD pour cela.
  2. Importez les données à partir du fichier CSV dans votre session PowerShell en utilisant l’applet de commande Import-CSV.
  3. Pour chaque ligne dans le fichier, créez les paramètres requis pour créer un nouvel utilisateur
  4. Exécutez l’applet de commande pour créer le nouvel utilisateur à l’aide de l’applet de commande New-AzureADUser

Si vous prévoyez d’utiliser ce script dans un environnement de production, vous devrez probablement aussi ajouter certaines parties supplémentaires, comme les suivantes :

  • Gestion des erreurs : que faire si un utilisateur ne peut pas être créé
  • Rapport d’exécution : lorsque le script est terminé, fournit une vue d’ensemble des tâches effectuées : nombre d’utilisateurs créés, entre autres.

Nous allons ignorer ces parties pour le moment et nous concentrer sur les fonctionnalités principales.

Voici le script que vous pouvez utiliser pour importer le fichier CSV comme indiqué et créer de nouveaux utilisateurs. Pour que ce script fonctionne dans votre environnement, vous devez mettre à jour les valeurs dans la première section avec les valeurs appropriées pour votre environnement.

Remarque : Le mot de passe des nouveaux utilisateurs doit respecter les règles de complexité de mot de passe que vous avez définies pour votre annuaire. Remarque : Le compte administrateur que vous spécifiez ici doit être administrateur dans l’annuaire que vous spécifiez

###
### 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
###
    }

Remarque : après avoir exécuté correctement ce script, les nouveaux utilisateurs ont été créés dans votre annuaire Azure Active Directory. Non ethat puisque nous avons spécifié -AccountEnabled = $True, les nouveaux utilisateurs peuvent immédiatement utiliser leur mot de passe pour se connecter à l’annuaire. Si vous ne souhaitez pas que les comptes d’utilisateurs soient actifs directement après l’exécution du script, vous pouvez spécifier -AccountEnabled = $False et activer les comptes ultérieurement à l’aide de l’applet de commande Set-AzureADUser.