From 4047ff4aba6aac62c9db2bc304d2b9d693333550 Mon Sep 17 00:00:00 2001 From: 7ka1 <7ka1@noreply.localhost> Date: Thu, 15 Jan 2026 14:02:15 +0000 Subject: [PATCH] Ajouter backup_users.ps1 --- backup_users.ps1 | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 backup_users.ps1 diff --git a/backup_users.ps1 b/backup_users.ps1 new file mode 100644 index 0000000..b6ff993 --- /dev/null +++ b/backup_users.ps1 @@ -0,0 +1,40 @@ +<# +.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 : $_" +} \ No newline at end of file