[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.”)
}