40 lines
1.3 KiB
PowerShell
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 : $_"
|
|
} |