# 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 }