<# .SYNOPSIS Sauvegarde journalière des utilisateurs AD. .DESCRIPTION Exporte les utilisateurs vers un CSV daté, compresse en ZIP, et stocke dans C:\backups. .NOTES Nom du script : backup_users.ps1 #> # Configuration des chemins $BackupDir = "C:\backups" if (-not (Test-Path $BackupDir)) { New-Item -Path $BackupDir -ItemType Directory | Out-Null } # Formatage de la date (YYYY-MM-DD) $DateStr = (Get-Date).ToString("yyyy-MM-dd") $CsvFile = Join-Path $BackupDir "$DateStr`_users.csv" $ZipFile = Join-Path $BackupDir "$DateStr`_users.zip" try { # 1. Exportation Get-ADUser -Filter * -Properties Department, Title, EmailAddress, AccountExpirationDate | Select-Object SamAccountName, Name, Enabled, Department, Title, AccountExpirationDate | Export-Csv -Path $CsvFile -NoTypeInformation -Encoding UTF8 -Force Write-Host "Export CSV terminé : $CsvFile" -ForegroundColor Cyan # 2. Compression # -Force permet d'écraser une archive existante si le script est relancé le même jour Compress-Archive -Path $CsvFile -DestinationPath $ZipFile -Force Write-Host "Compression terminée : $ZipFile" -ForegroundColor Green # Nettoyage du CSV brut (optionnel mais recommandé pour l'espace disque) Remove-Item $CsvFile -Force } catch { Write-Error "Erreur lors de la sauvegarde : $_" }