Untitled

 avatar
unknown
plain_text
8 days ago
2.5 kB
4
Indexable
# Chemin du fichier CSV
$csvPath = "C:\Path\To\users.csv"

# Lire le fichier CSV
$users = Import-Csv -Path $csvPath -Delimiter ";"

# Création des Unités d'Organisation (OU)
New-ADOrganizationalUnit -Name "ComputeSystem" -Path "DC=domain,DC=com"
New-ADOrganizationalUnit -Name "Utilisateurs" -Path "OU=ComputeSystem,DC=domain,DC=com"
New-ADOrganizationalUnit -Name "Groupes" -Path "OU=ComputeSystem,DC=domain,DC=com"
New-ADOrganizationalUnit -Name "DL" -Path "OU=ComputeSystem,DC=domain,DC=com"

# Création des utilisateurs dans l'OU Utilisateurs
foreach ($user in $users) {
    $prenom = $user.Prénom
    $nom = $user.Nom
    $groupe = $user.Groupe

    # Créer l'utilisateur dans l'OU Utilisateurs
    New-ADUser -Name "$prenom $nom" `
               -GivenName $prenom `
               -Surname $nom `
               -SamAccountName "$prenom.$nom" `
               -UserPrincipalName "$prenom.$nom@domain.com" `
               -Path "OU=Utilisateurs,OU=ComputeSystem,DC=domain,DC=com" `
               -Enabled $true `
               -AccountPassword (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force)
}

# Création des groupes GG dans l'OU Groupes (uniques)
$groupes = $users | Select-Object -ExpandProperty Groupe | Sort-Object | Get-Unique

foreach ($groupe in $groupes) {
    New-ADGroup -Name $groupe `
                -GroupScope Global `
                -GroupCategory Security `
                -Path "OU=Groupes,OU=ComputeSystem,DC=domain,DC=com"
}

# Création des groupes DL dans l'OU DL (fixes)
$dlGroups = @(
    "DL-DIRECTION-RW",
    "DL-COMMERCIAUX-RW",
    "DL-COMPTABILITE-R",
    "DL-COMPTABILITE-RW",
    "DL-ADMINISTRATEUR-RW",
    "DL-SUPPORT-02-R",
    "DL-SUPPORT-02-RW",
    "DL-SUPPORT-01-RW"
)

foreach ($dl in $dlGroups) {
    New-ADGroup -Name $dl `
                -GroupScope DomainLocal `
                -GroupCategory Security `
                -Path "OU=DL,OU=ComputeSystem,DC=domain,DC=com"
}

# Association des groupes GG aux groupes DL correspondants
$mapping = @{
    "GG-DIRECTION"          = @("DL-DIRECTION-RW")
    "GG-COMPTABILITE"       = @("DL-COMPTABILITE-R", "DL-COMPTABILITE-RW")
    "GG-SUPPORT-01"         = @("DL-SUPPORT-01-RW")
    "GG-SUPPORT-02"         = @("DL-SUPPORT-02-R", "DL-SUPPORT-02-RW")
    "GG-ADMINISTRATEUR"     = @("DL-ADMINISTRATEUR-RW")
}

foreach ($gg in $mapping.Keys) {
    foreach ($dl in $mapping[$gg]) {
        Add-AdGroupMember -Identity $dl `
                          -Members (Get-AdGroupMember -Identity $gg).SamAccountName
    }
}
Editor is loading...
Leave a Comment