Files
BACKUPuser/backup_users.ps1
2026-01-15 14:02:15 +00:00

40 lines
1.3 KiB
PowerShell

<#
.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 : $_"
}