Solutions
🧩 Exercice 1 — Corrigé
Get-ChildItem
New-Item -Path C:\PS_Test -ItemType Directory
Set-Content -Path C:\PS_Test\info.txt -Value "PowerShell est puissant."
Get-Content -Path C:\PS_Test\info.txt
🗒️ New-Item crée le dossier, Set-Content écrit dans le fichier, et Get-Content l’affiche.
🧩 Exercice 2 — Corrigé
Get-Process |
Where-Object { $_.Name -like "*chrome*" } |
Select-Object Name, WS |
Export-Csv -Path C:\chrome.csv -NoTypeInformation
🗒️ Le pipeline (|) permet de filtrer puis d’exporter facilement les données.
🧩 Exercice 3 — Corrigé
$services = Get-Service | Where-Object { $_.Status -eq "Running" }
$services | Select-Object Name, Status
$services.Count
🗒️ On stocke le résultat dans $services pour pouvoir le réutiliser.
🧩 Exercice 4 — Corrigé
$processus = Get-Process | Sort-Object WS -Descending | Select-Object -First 5
foreach ($p in $processus) {
if ($p.WS -gt 100MB) {
Write-Host "⚠️ $($p.Name) : processus gourmand ($($p.WS/1MB) Mo)"
} else {
Write-Host "✅ $($p.Name) : processus normal"
}
}
🗒️ Exemple concret de boucle foreach avec une condition if.
🧩 Exercice 5 — Corrigé
$date = Get-Date -Format "yyyy-MM-dd"
$source = "C:\Données"
$destination = "D:\Sauvegarde\$date"
New-Item -Path $destination -ItemType Directory -Force
Copy-Item -Path $source\* -Destination $destination -Recurse
$count = (Get-ChildItem $destination -Recurse).Count
$log = "Sauvegarde effectuée le $date : $count fichiers copiés."
$log | Out-File -FilePath "$destination\log.txt"
Write-Host $log
🗒️ Ce script montre l’automatisation d’une tâche réelle avec journalisation.
Last modified: 07 October 2025