Untitled

 avatar
unknown
plain_text
13 days ago
4.1 kB
3
Indexable
# Script PowerShell pour extraire et créer les utilisateurs depuis le fichier ODS
# avec mot de passe Ertyuiop, non-expirant et non-modifiable

# Importer le module Active Directory
Import-Module ActiveDirectory

# Importer les données depuis le fichier Excel converti
$xlsxFile = "C:\Chemin\Vers\partages3.xlsx"
$usersData = Import-Excel -Path $xlsxFile

# Définir les paramètres par défaut pour les utilisateurs
$defaultPassword = ConvertTo-SecureString "Ertyuiop" -AsPlainText -Force
$domain = "computersystem.info"
$rootOU = "OU=SIEGE,DC=COMPUTERSYSTEM,DC=INFO"

# Fonction pour générer le nom d'utilisateur
function Get-UserLoginName {
    param (
        [string]$FullName
    )
    
    $nameParts = $FullName.Split(" ")
    if ($nameParts.Count -ge 2) {
        $firstName = $nameParts[0]
        $lastName = $nameParts[-1]
        return ($firstName.Substring(0, 1) + $lastName).ToLower()
    }
    return $FullName.ToLower()
}

# Fonction pour déterminer l'UO basée sur le groupe global
function Get-UserOU {
    param (
        [string]$GroupName
    )
    
    switch -Wildcard ($GroupName) {
        "GG-DIRECTION*" { return "OU=DIRECTION,$rootOU" }
        "GG-SECRETARIAT-DIRECTION*" { return "OU=DIRECTION,$rootOU" }
        "GG-AVANT-VENTES*" { return "OU=Avant-ventes,OU=COMMERCIAUX,$rootOU" }
        "GG-VENTE*" { return "OU=Vendeurs,OU=COMMERCIAUX,$rootOU" }
        "GG-COMPTABILITE*" { return "OU=COMPTABILITE,$rootOU" }
        "GG-ADMINISTRATEUR*" { return "OU=Administration,OU=IT,$rootOU" }
        "GG-SUPPORT-01*" { return "OU=Support Niveau 1,OU=Asistance clients,OU=IT,$rootOU" }
        "GG-SUPPORT-02*" { return "OU=Support Niveau 2,OU=Asistance clients,OU=IT,$rootOU" }
        default { return $rootOU }
    }
}

# Création des utilisateurs et ajout aux groupes
$createdUsers = @()

foreach ($row in $usersData) {
    # Vérifier si la ligne contient un utilisateur
    if ([string]::IsNullOrEmpty($row.'Utilisateurs') -or $row.'Utilisateurs' -eq "moi") {
        continue
    }
    
    $userName = $row.'Utilisateurs'
    $globalGroup = $row.'Groupe Global (GG)'
    
    if ([string]::IsNullOrEmpty($globalGroup)) {
        continue
    }
    
    # Générer le nom d'utilisateur
    $samAccountName = Get-UserLoginName -FullName $userName
    
    # Déterminer l'UO de l'utilisateur
    $userOU = Get-UserOU -GroupName $globalGroup
    
    # Vérifier si l'utilisateur existe déjà
    if (-not (Get-ADUser -Filter "SamAccountName -eq '$samAccountName'" -ErrorAction SilentlyContinue)) {
        try {
            # Créer l'utilisateur avec les paramètres spécifiés
            New-ADUser -Name $userName `
                -SamAccountName $samAccountName `
                -UserPrincipalName "$samAccountName@$domain" `
                -DisplayName $userName `
                -GivenName ($userName.Split(" ")[0]) `
                -Surname ($userName.Split(" ")[-1]) `
                -Path $userOU `
                -AccountPassword $defaultPassword `
                -CannotChangePassword $true `
                -PasswordNeverExpires $true `
                -Enabled $true
                
            Write-Host "Utilisateur $userName créé avec succès (SamAccountName: $samAccountName)"
            $createdUsers += $samAccountName
            
            # Ajouter l'utilisateur au groupe global
            Add-ADGroupMember -Identity $globalGroup -Members $samAccountName
            Write-Host "Utilisateur $samAccountName ajouté au groupe $globalGroup"
        }
        catch {
            Write-Warning "Erreur lors de la création de l'utilisateur $userName : $_"
        }
    }
    else {
        Write-Host "L'utilisateur $samAccountName existe déjà"
        
        # S'assurer que l'utilisateur est dans le bon groupe
        Add-ADGroupMember -Identity $globalGroup -Members $samAccountName
    }
}

Write-Host "Création des utilisateurs terminée. $($createdUsers.Count) utilisateurs créés."
Write-Host "Tous les utilisateurs ont été créés avec le mot de passe 'Ertyuiop' qui n'expire jamais et ne peut pas être changé."
Editor is loading...
Leave a Comment