Untitled
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