# ----------------------------------------------------------- # Script : update_expiration_date.ps1 # Description : Expire les comptes des "Assembler" du département "Production" # en définissant la date d'expiration à J-1. # ----------------------------------------------------------- # --- CONFIGURATION --- $TargetDepartment = "Production" $TargetTitle = "Assembler" # Calcul de la date d'expiration (Date du jour - 1 jour) $ExpirationDate = (Get-Date).AddDays(-1) # --- IMPORTATION MODULE --- Import-Module ActiveDirectory # --- TRAITEMENT --- Write-Host "Recherche des utilisateurs concernés ($TargetDepartment - $TargetTitle)..." -ForegroundColor Cyan # Récupération des utilisateurs correspondant aux critères # On utilise le filtre AD pour cibler uniquement les bonnes personnes $UsersToExpire = Get-ADUser -Filter "Department -eq '$TargetDepartment' -and Title -eq '$TargetTitle'" -Properties Department, Title if ($UsersToExpire) { foreach ($User in $UsersToExpire) { try { # Application de la date d'expiration Set-ADAccountExpiration -Identity $User -DateTime $ExpirationDate -ErrorAction Stop Write-Host "Compte expiré pour : $($User.Name) ($($User.SamAccountName))" -ForegroundColor Yellow } catch { Write-Host "Erreur lors de la modification de $($User.Name) : $_" -ForegroundColor Red } } Write-Host "`nOpération terminée. Les comptes ont été expirés à la date du : $ExpirationDate" -ForegroundColor Green } else { Write-Host "Aucun utilisateur trouvé avec les critères : Dept=$TargetDepartment et Titre=$TargetTitle" -ForegroundColor Gray }