37 lines
1.4 KiB
PowerShell
37 lines
1.4 KiB
PowerShell
# Nom du script : backup_users.ps1
|
|
Import-Module ActiveDirectory
|
|
|
|
$dateStr = Get-Date -Format "yyyy-MM-dd"
|
|
# 1. Correction : Il faut des guillemets autour du chemin
|
|
$backupDir = "C:\backups\"
|
|
$csvFile = "${backupDir}${dateStr}_users.csv"
|
|
$zipFile = "${backupDir}${dateStr}_users.zip"
|
|
|
|
# Création du dossier si nécessaire
|
|
if (-not (Test-Path $backupDir)) {
|
|
New-Item -Path $backupDir -ItemType Directory | Out-Null
|
|
}
|
|
|
|
Write-Host "--- Sauvegarde AD ---" -ForegroundColor Cyan
|
|
|
|
# 2. Correction : Ajout de l'étoile '*' pour le filtre et le pipe '|' pour le Where-Object
|
|
# Le filtre '*' signifie "tout le monde".
|
|
$users = Get-ADUser -Filter * -Properties Department, Title | Where-Object { $_.DistinguishedName -like "*OU=*" }
|
|
|
|
if ($users) {
|
|
# 3. Correction : Ajout des pipes '|' pour enchaîner les commandes
|
|
$users | Select-Object Name, SamAccountName, Department, Title | Export-Csv -Path $csvFile -NoTypeInformation -Encoding UTF8 -Delimiter ";"
|
|
|
|
# Compression (Ecrase si existe déjà)
|
|
if (Test-Path $zipFile) { Remove-Item $zipFile }
|
|
|
|
# Note : Compress-Archive est natif sur Windows 10/Server 2016+
|
|
Compress-Archive -Path $csvFile -DestinationPath $zipFile
|
|
|
|
# Nettoyage du CSV temporaire
|
|
Remove-Item $csvFile
|
|
|
|
Write-Host "[OK] Sauvegarde terminée : $zipFile" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "Rien à sauvegarder." -ForegroundColor Yellow
|
|
} |