41 lines
1.7 KiB
PowerShell
41 lines
1.7 KiB
PowerShell
# -----------------------------------------------------------
|
|
# 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
|
|
}
|