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