[Màj] Importation depuis fichiers CSV d'OU, Groupes et Users dans AD
Mise à jour du script d’importation des OU, Groupes et Users dans AD. Avec la possibilité de créer des OU dans des OU.
Le format des fichiers csv est désormais le suivant :
Pour les utilisateurs :
Name;Firstname;Login;OU;Roaming
Pour les groupes :
Name;OU;Members
Et les OU :
Name;OU
Roaming est un champ optionnel permettant de définir les utilisateurs nomades. Ceux-ci seront intégrés dans un groupe pour les utilisateurs nomades en plus de leurs autres groupes. Peu importe la valeur spécifiée (mettre « Y » pour taguer un utilisateur comme nomade)
Les utilisateurs nomades sont les utilisateurs pouvant se déplacer avec leur poste de travail (eg : un ordinateur portable).
Je vous copie/colle le script sinon reportez vous au billet précédent sur ce sujet pour plus de détail :
Import-Module ActiveDirectory $OUs = Import-Csv -Delimiter ";" -Path ".\ous.csv" foreach ($OU in $OUs) { if ($OU.OU) { $OU2get = $OU.OU $OU_object = Get-ADOrganizationalUnit -Filter {Name -like $OU2get} $OU_Path = $OU_object.DistinguishedName } else { $OU_Path = "DC=ranou,DC=fr" } New-ADOrganizationalUnit -Name $OU.Name -Path $OU_Path -ProtectedFromAccidentalDeletion $false $Group_Path = ("OU=" + $OU.Name + "," + $OU_Path) New-ADGroup -Name ("DL_" + $OU.Name + "_RO") -GroupScope 0 -Path $Group_Path New-ADGroup -Name ("DL_" + $OU.Name + "_RW") -GroupScope 0 -Path $Group_Path echo (“OU: “ + $OU.Name + “ created with default RO and RW groups”) } $Users = Import-Csv -Delimiter ";" -Path ".\users.csv" foreach ($User in $Users) { $OU2get = $User.OU $OU_object = Get-ADOrganizationalUnit -Filter {Name -like $OU2get} $OU_Path = $OU_object.DistinguishedName $Password = "p455w0rD" $DetailedName = $User.Firstname + " " + $User.Name $Login = $User.Login New-ADUser -Name $DetailedName -SamAccountName $Login -UserPrincipalName $Login -DisplayName $DetailedName -GivenName $User.FirstName -Surname $User.Name -AccountPassword(ConvertTo-SecureString $Password -AsPlainText -Force) -Enabled $true -ChangePasswordAtLogon $true -Path $OU_Path echo (“User: “ + $DetailedName + “ created”) if ($User.Roaming) { Add-ADGroupMember -Identity "Utilisateurs nomades" -Members $Login echo (“User: “ + $DetailedName + “ added to roaming group") } } $Groups= Import-Csv -Delimiter ";" -Path ".\groups.csv" foreach ($Group in $Groups) { $OU2get = $Group.OU $OU_object = Get-ADOrganizationalUnit -Filter {Name -like $OU2get} $OU_Path = $OU_object.DistinguishedName $GroupName = "G_" + $Group.Name $GroupNameRO = "DL_" + $Group.Name + "_RO" $GroupNameRW = "DL_" + $Group.Name + "_RW" New-ADGroup -Name $GroupName -GroupScope 1 -Path $OU_Path New-ADGroup -Name $GroupNameRO -GroupScope 0 -Path $OU_Path New-ADGroup -Name $GroupNameRW -GroupScope 0 -Path $OU_Path foreach ($User in $Group.Members.Split(",")) { Add-ADGroupMember -Identity $GroupName -Members $User } echo (“Group: “ + $GroupName + “ created with users ” + $Group.Members + “, as members.”) }