Problème n° 5 — PowerShell : Comptes AD créés mais inutilisables le premier jour

Contexte

Une entreprise intègre 15 nouveaux collaborateurs le même jour suite à une fusion. Le service RH transmet un fichier nouveaux_employes.csv à l’administrateur la veille, qui écrit un script PowerShell pour créer les comptes AD en masse et gagner du temps.

Le fichier CSV transmis par le RH :

csv

Prenom,Nom,Service,MotDePasse,Actif,ChangerMotDePasse
Jean,Dupont,Comptabilité,Winter2024!,True,False
Marie,Martin,RH,Winter2024!,True,False
Pierre,Bernard,Informatique,Winter2024!,True,False
...

Le script écrit par l’administrateur :

powershell

Import-Csv "C:\RH\nouveaux_employes.csv" | ForEach-Object {
    $password = ConvertTo-SecureString $_.MotDePasse -AsPlainText -Force

    New-ADUser `
        -GivenName $_.Prenom `
        -Surname $_.Nom `
        -Name "$($_.Prenom) $($_.Nom)" `
        -SamAccountName "$($_.Prenom[0])$($_.Nom)".ToLower() `
        -AccountPassword $password `
        -Enabled $_.ChangerMotDePasse `
        -ChangePasswordAtLogon $_.Actif `
        -Path "OU=Utilisateurs,DC=corp,DC=lan"
}

Le lendemain matin, les 15 collaborateurs se présentent avec leur poste, tentent de se connecter et aucun n’y arrive. Certains obtiennent :

« Ce compte est désactivé. Veuillez contacter votre administrateur. »

D’autres parviennent à saisir leur mot de passe mais tombent sur :

« Le mot de passe de cet utilisateur a expiré. Veuillez contacter votre administrateur. »

L’administrateur vérifie dans dsa.msc : les 15 comptes sont bien créés, dans la bonne OU, avec les bons groupes. Pourtant personne ne peut se connecter.

Problème

Les comptes sont créés mais inutilisables. Identifier les erreurs dans le script et corriger pour que les comptes soient directement opérationnels à la création.

⌛ Answer coming in
8 days
23 hours
20 minutes
20 seconds

Answer on:

1 réflexion au sujet de « Problème n° 5 — PowerShell : Comptes AD créés mais inutilisables le premier jour »

  1. Salut, je pense aux parms inversés : « -ChangePasswordAtLogon $_.Actif » et « $_.Enabled ».
    Après ce script est forcément mauvais car si deux utilisateurs ont le même début de prénom ça plante (homomorphe).
    Pour ça j’avais mis en place un check de l’AD avant, et si collision on rajouter une lettre du prénom jusqu’à obtenir un compte unique.
    Mettre un peu de log aussi 🙂
    Bonne journée!

    Répondre

Laisser un commentaire