Créez des utilisateurs AD en masse et envoyez leurs identifiants par e-mail à l'aide de PowerShell
Mar 30, 2017
Chaque année, les établissements d'enseignement inscrivent des centaines d'étudiants. En conséquence, les ingénieurs systèmes des institutions nécessitent un temps et un effort supplémentaires pour créer un compte AD pour chaque étudiant puis pour informer manuellement les étudiants de leurs noms d'utilisateur et mots de passe.
Ce guide étape par étape rendra la vie des ingénieurs système un peu plus facile avec l'aide du scripting PowerShell. Le script vous permet de créer des comptes utilisateurs AD à partir d'un fichier CSV, d'assigner des mots de passe aléatoires à ceux-ci, puis d'envoyer ces noms d'utilisateur et mots de passe aux nouveaux étudiants dans des e-mails de bienvenue.
J'ai utilisé les cmdlets suivants dans mon script. Cliquez sur n'importe quel cmdlet individuel pour plus de détails.
- Import-CSV (pour importer les détails des utilisateurs)
- Get-Credential (pour obtenir les identifiants de courriel)
- Get-Random (pour générer des mots de passe)
- New-ADUser (pour créer de nouveaux utilisateurs AD)
- Get-Content (pour lire le contenu d'un e-mail à partir d'un fichier)
- Send-MailMessage (pour envoyer des e-mails aux utilisateurs)
Pour envoyer les e-mails avec les identifiants aux nouveaux utilisateurs, j'utilise un serveur SMTP Gmail. Cependant, vous pouvez configurer le script pour qu'il s'adapte à votre environnement informatique et à votre serveur de messagerie. Le script ci-dessous a été écrit et testé sur un DC fonctionnant sous Windows Server 2016. Si vous devez exécuter le script sur Windows Server 2012, 2012 R2 ou 2008, il se peut que vous deviez importer certains modules PowerShell.
Avant d'exécuter le script, vérifiez les prerequisites suivants :
- Un fichier CSV avec les informations des étudiants (prénom, nom, nom de compte Sam et adresse e-mail)
- A text or Word (doc or docx) file with a welcome email message
- Une connexion Internet activée (si vous souhaitez utiliser un serveur SMTP Gmail)
Contenu connexe sélectionné :
Si vous avez rempli toutes ces conditions, vous pouvez créer des comptes AD et envoyer des e-mails de bienvenue en masse en suivant deux étapes simples :
Étape 1.
Copiez et collez le script dans un fichier texte et enregistrez-le avec l'extension .ps1 :
##Beginning of functions
Function Format-Email {
Param ([string]$WCEmailContent,[string]$UserPrincipalName,[string]$UserPassword)
return $WCEmailContent + "User Name = $UserPrincipalName
Password = $UserPassword
Thank You
IT Department"
}
Function Send-Email {
Param ($Email, $Credential,[string]$WCEmailContent)
$From = "karim.buzdar@gmail.com"
$subject = "Domain Account Details"
$Body = $WCEmailContent
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
Send-MailMessage -from $From -to $Email -Subject $subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Credential $Credential -UseSsl
}
###End of Functions
##### Beginning of main programme
$Credential = (get-Credential) #Getting email credentials to be used for From field in Email message
$UsersFilePath = "C:UsersAdministrator.YOURDOMAINDesktopWCusers.csv" # Files of users information (First name, Last name, Sam account name, Email address)
$WCEmailFile = "C:UsersAdministrator.YOURDOMAINDesktopWCWCEmail.docx" # File containing welcome email message
import-csv -path $UsersFilePath | foreach {
$Name = ($_.GivenName + " " + $_.LastName)
$UserPrincipalName = ($_.SamAccountName + ”@yourdomain.com”)
$UserPassword = Get-Random -maximum 20000 -Minimum 100
$UserPassword = "@" + "user" + $UserPassword.ToString()
#Create user in Students OU
new-aduser -name $Name -enabled $true -GivenName $_.GivenName –surname $_.lastName -accountpassword (convertto-securestring $UserPassword -asplaintext -force) -changepasswordatlogon $true -samaccountname $_.SamAccountName –userprincipalname $UserPrincipalName -EmailAddress $_.EmailAddress -Path 'OU=Students,DC=yourdomain,DC=com' -ErrorAction Stop
$WCEmailContent = Format-Email -WCEmailContent (Get-Content $WCEmailFile) -UserPrinciPalName $UserPrincipalName -UserPassword $UserPassword
Send-Email -Email $_.EmailAddress -Credential $Credential -WCEmailContent $WCEmailContent
Write-Host "User Created: $Name"
}
### End of main program
Étape 2.
Ouvrez PowerShell avec vos privilèges élevés et exécutez le fichier de script que vous avez créé à l'étape 1.
Une fois que vous avez exécuté le script avec succès, les utilisateurs peuvent se connecter immédiatement au domaine. Vous pouvez vérifier la création du compte dans la console Active Directory Users and Computers et envoyer la notification de création du compte en utilisant le champ CC dans le cmdlet Send-MailMessage.
Découvrez mon dernier article pour apprendre comment découvrir les nouveaux utilisateurs ajoutés dans AD dans les dernières 24 heures et envoyer leurs identifiants par e-mail à l'aide de PowerShell. Vous pouvez également essayer ce How-to: Export Specific Users from Active Directory si on vous demande fréquemment d'exporter les utilisateurs AD vers un fichier CSV.
N'hésitez pas à laisser vos suggestions dans les commentaires afin que nous puissions améliorer la fonctionnalité du script.
Partager sur
En savoir plus
À propos de l'auteur
Karim Buzdar
Ingénieur Support
Ingénieur informatique et Microsoft Certified Solutions Associate (MCSA) pour l'infrastructure serveur. En tant qu'auteur technique, Karim se concentre sur les services d'annuaire Microsoft et PowerShell.
En savoir plus sur ce sujet
Lois sur la confidentialité des données par État : Différentes approches de la protection de la vie privée
Exemple d'analyse des risques : Comment évaluer les risques
Le Triangle CIA et son application dans le monde réel
Qu'est-ce que la gestion des documents électroniques ?
Analyse quantitative des risques : Espérance de perte annuelle