Files
Scripts-Pack-Epsic-122/update_expiration_date.ps1

31 lines
1.3 KiB
PowerShell

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
}