Ajouter backup_users.ps1
This commit is contained in:
40
backup_users.ps1
Normal file
40
backup_users.ps1
Normal file
@@ -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 : $_"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user