PowerShell est un outil d’automatisation et de gestion puissant destiné aux administrateurs système. Il vous permet d’exécuter des scripts, de gérer des services et des utilisateurs, de contrôler des événements et d’interagir avec des systèmes externes et des API. Ce guide vous explique étape par étape comment utiliser PowerShell pour effectuer des tâches pratiques.
Installation et configuration
- Téléchargez PowerShell 7+ depuis le site officiel : https://github.com/PowerShell/PowerShell
- Ouvrez PowerShell ou PowerShell ISE (l’éditeur de scripts intégré).
Autorisez l’exécution des scripts en exécutant la commande suivante :
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Premier script « Hello.ps1 »
Créez un fichier nommé « Hello.ps1 » et collez-y le contenu suivant :
Write-Host "Hello, PowerShell automation!"
Get-Date
$env:USERNAME
Exécutez le script à l’aide de la commande suivante :
.\Hello.ps1
Principes de base de la syntaxe
PowerShell repose sur une structure claire et concise :
- Commandes : Get-Process, Start-Service, Stop-Computer
- Variables : $user = « Admin »
- Conditions : if ($x -gt 10) { … }
- Boucles : foreach ($item in $list) { … }
Utilisez l’éditeur PowerShell ISE ou Visual Studio Code avec l’extension PowerShell pour la mise en surbrillance et la saisie semi-automatique.
Style et structure du script
Nous vous recommandons de respecter les principes suivants :
- Nommez les fonctions selon le modèle verbe-nom : Get-Report, Start-Backup
- Utilisez Try-Catch pour traiter les erreurs
- Ajoutez des commentaires et des descriptions de paramètres (Docblocks)
- Séparez la logique par fonctions et modules
Exemple : surveillance de la mémoire
param([int]$Threshold = 80)
$mem = Get-CimInstance Win32_OperatingSystem |
Select @{Name='FreeGB'; Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}
if ($mem.FreeGB -lt $Threshold) {
Write-Warning "Memory low: $($mem.FreeGB) GB"
} else {
Write-Host "Memory OK: $($mem.FreeGB) GB"
}
Le script vérifie si l’espace disque disponible est suffisant et affiche un avertissement si ce n’est pas le cas.
Planificateur de tâches
Vous pouvez exécuter des scripts PowerShell selon un calendrier :
- Ouvrez le planificateur de tâches
- Créez une nouvelle tâche → onglet « Action »
Indiquez les informations suivantes :
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Hello.ps1"
- Configurez un déclencheur basé sur le temps ou sur un événement.
Gestion des utilisateurs
Utilisateurs locaux :
$pass = Read-Host -AsSecureString "Введите пароль"
New-LocalUser -Name "TestUser" -Password $pass -FullName "Тестовый пользователь"
Disable-LocalUser -Name "TestUser"
Remove-LocalUser -Name "TestUser"
Active Directory (avec fichier CSV) :
Import-Csv users.csv | ForEach-Object {
New-ADUser -Name $_.Name -SamAccountName $_.Login `
-AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Enabled $true
}
Surveillance des événements Windows
Get-WinEvent -LogName System -MaxEvents 10 |
Format-Table TimeCreated, Id, Message
Filtrage :
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-1)}
Exporter au format CSV :
... | Export-Csv "C:\Logs\app.csv" -NoTypeInformation
Sauvegarde et archivage
$src = "C:\Important"
$dst = "D:\Backup\Backup_$(Get-Date -Format 'yyyyMMdd').zip"
Compress-Archive -Path "$src\*" -DestinationPath $dst
Add-Content "D:\Backup\backup_log.txt" "Backup: $(Get-Date) → $dst"
Ce script crée une archive à partir d’un dossier et consigne la sauvegarde.
Notifications par e-mail
Send-MailMessage -From "admin@domain.com" -To "team@company.com" `
-Subject "Backup report" -Body "Backup completed successfully." `
-SmtpServer "smtp.domain.com" -Attachments "D:\Backup\*.zip"
Intégration avec CI/CD et le cloud
- Vous pouvez utiliser PowerShell dans GitHub Actions, Azure Automation Runbooks ou sur VPS SSD.
Exemple pour GitHub Actions :
- name: Run PowerShell script
run: pwsh ./monitor.ps1
- Dans Azure, vous pouvez exécuter un script avec RBAC et des journaux d’exécution selon un calendrier défini.
PowerShell n’est pas seulement un shell, mais un outil d’automatisation universel. À l’aide d’exemples pratiques pour sauvegarder et supprimer d’anciens fichiers et exécuter des programmes, vous apprendrez rapidement les bases. Important : testez toujours les scripts avec le paramètre -WhatIf ou dans un environnement de test afin d’éviter toute modification indésirable.