Import-Module ActiveDirectory # 1. Définir la date d'expiration à HIER (expiration immédiate) $yesterday = (Get-Date).AddDays(-1) Write-Host "--- Mise à jour Expiration : Licenciement Production/Assembler ---" -ForegroundColor Red Write-Host "Date d'expiration fixée au : $($yesterday.ToShortDateString())" -ForegroundColor Gray # 2. Cibler le Département Production et le Titre Assembler $dept = "Production" $job = "Assembler" # Note : J'inclus 'Description' dans le filtre par sécurité au cas où le champ 'Title' serait vide $users = Get-ADUser -Filter "Department -eq '$dept' -and (Title -eq '$job' -or Description -eq '$job')" -Properties Department, Title, Description if ($users) { Write-Host "$($users.Count) employés identifiés pour le départ." -ForegroundColor White foreach ($u in $users) { try { # Application de la nouvelle date Set-ADAccountExpiration -Identity $u.SamAccountName -DateTime $yesterday -ErrorAction Stop Write-Host "[EXPIRÉ] Compte désactivé pour : $($u.Name)" -ForegroundColor Yellow } catch { Write-Host "[ERREUR] Échec sur $($u.Name) : $($_.Exception.Message)" -ForegroundColor DarkRed } } } else { Write-Host "Aucun utilisateur correspondant trouvé ($dept - $job)." -ForegroundColor Green }