Ce script permet de créer en masse des utilisateurs dans un AD sur base d’un fichier CSV.
$userlist = Import-CSV usertocreate.csv
foreach($user in $userlist){
New-AdUser -Name $user.Name -GivenName $user.FirstName -Surname $user.LastName -Path $user.OrgUnit -StreetAddress $user.Address -City $user.City -PostalCode $user.PostalCode -Country FR -HomeDrive "U:" -HomeDirectory $user.HomeDir -AccountPassword (ConvertTo-SecureString -AsPlainText $user.MatriculeID -Force) -UserPrincipalName $user.UPN
Enable-ADAccount $user.Name
Set-ADUser -Identity $user.Name -ChangePasswordAtLogon $true
$GrpList = $user.Groups
while($GrpList.IndexOf(",") -ne -1) {
$commaindex = $GrpList.IndexOf(",")
Add-AdGroupMember -Identity $GrpList.SubString(0,$commaindex) -Members $user.Name
$GrpList = $GrpList.SubString($commaindex+1,$GrpList.Length-($commaindex+1))
}
Add-AdGroupMember -Identity $GrpList -Members $user.Name
}
Le script (une version commentée est disponible en fin d’article, comme toujours) prend quelques propriétés pour la création du compte en sus des usuelles. Il pourra donc être nécessaire d’en retirer, en rajouter ou de modifier les noms attribués dans le script pour s’adapter au fichier d’entrée qui pourra être généré à partir d’une application RH par exemple.
Le script ajoute également l’utilisateur fraîchement créé aux groupes AD spécifiés, en découpant la liste située entre guillemets (afin qu’elle soit interprétée comme une chaîne de caractères unique) en fractions séparées par une virgule.
Le mot de passe est basé sur un numéro matricule fictif que seul l’utilisateur final connaît ; cependant pour des raisons de sécurité, ce mot de passe sera à modifier à la première connexion.