Sommaire
- PowerShell vs CMD : pourquoi changer
- Ouvrir PowerShell : modes et droits administrateur
- Navigation et exploration du système
- Gérer les fichiers et dossiers
- Gérer les processus et services
- Lire, filtrer et exporter des données
- Les cmdlets de découverte : Get-Help, Get-Command, Get-Member
- Créer et exécuter son premier script .ps1
- PowerShell et Active Directory : le duo BTS SIO
- 5 exercices pratiques pour progresser
- Tableau récapitulatif : 25 commandes essentielles
- Quiz : testez vos bases PowerShell
- Conclusion : PowerShell, la compétence qui fait la différence
PowerShell est l’outil d’administration par excellence sous Windows, et pourtant il reste sous-utilisé par les étudiants en informatique. Beaucoup se limitent à l’invite de commandes classique (CMD) alors que PowerShell offre une puissance incomparable pour automatiser des tâches, gérer un parc de machines et administrer un Active Directory. Si vous préparez un BTS SIO option SISR, la maîtrise de PowerShell est un atout majeur en entreprise et un vrai différenciateur sur le marché du travail. Ce guide vous donne les 25 commandes essentielles avec des exemples concrets, des explications claires et des cas d’usage réels tirés des TP du BTS SIO.
En bref
- PowerShell remplacé avantageusement CMD grâce à son système d’objets (pas de texte brut)
- Les cmdlets suivent la convention Verbe-Nom (Get-Process, Set-Location)
- Le pipeline | transmet des objets, pas du texte, ce qui rend le filtrage et le tri natifs
- 25 commandes couvrent 80% des besoins d’un administrateur système junior
- PowerShell est indispensable pour gérer Active Directory, les GPO et l’automatisation Windows
PowerShell vs CMD : pourquoi changer
L’invite de commandes (CMD) existe depuis MS-DOS. Elle manipule du texte brut : chaque commande produit une chaîne de caractères que vous devez parser manuellement avec des outils comme findstr. PowerShell, lui, manipule des objets. Quand vous tapez Get-Process, vous obtenez une liste d’objets avec des propriétés (nom, ID, mémoire, CPU) que vous pouvez filtrer, trier et exporter nativement.

| Critère | CMD | PowerShell |
|---|---|---|
| Sortie | Texte brut | Objets .NET |
| Pipeline | Transmet du texte | Transmet des objets |
| Syntaxe | Commandes héritées DOS | Verbe-Nom (cohérent) |
| Scripting | Fichiers .bat (limités) | Fichiers .ps1 (complets) |
| Active Directory | dsquery, dsmod (archaïques) | Module AD complet |
| Multiplateforme | Windows uniquement | Windows, Linux, macOS |
| Aide intégrée | help (basique) | Get-Help (détaillé, exemples) |
La conclusion est simple : CMD suffit pour des tâches ponctuelles, mais PowerShell est indispensable dès que vous faites de l’administration système en entreprise.
Ouvrir PowerShell : modes et droits administrateur
Trois façons d’ouvrir PowerShell sous Windows :
- Menu Démarrer : tapez « PowerShell » et cliquez sur Windows PowerShell
- Raccourci clavier :
Win+Xpuis sélectionnez « Terminal Windows » (Windows 11) - Depuis l’explorateur :
Shift + clic droitdans un dossier → « Ouvrir une fenêtre PowerShell ici »
Pour les tâches d’administration (installation de services, modification du registre, gestion d’AD), vous devez ouvrir PowerShell en tant qu’administrateur. Clic droit → « Exécuter en tant qu’administrateur ». Sans cette élévation de privilèges, de nombreuses commandes échoueront silencieusement.
Navigation et exploration du système
Les premières commandes à maîtriser sont celles qui vous permettent de vous repérer et de naviguer dans le système de fichiers.
# Où suis-je ?
Get-Location
# Changer de répertoire
Set-Location C:UsersetudiantDocuments
# Alias court (identique à cd)
cd C:WindowsSystem32
# Lister le contenu d'un répertoire
Get-ChildItem
# Alias court (identique à ls ou dir)
ls -la # -la n'existe pas en PS, utilisez :
Get-ChildItem -Force # affiche les fichiers cachés
# Lister récursivement tous les fichiers .log
Get-ChildItem -Path C:Logs -Recurse -Filter *.log
| Cmdlet | Alias | Équivalent CMD/Bash | Usage |
|---|---|---|---|
Get-Location |
pwd |
cd (sans argument) |
Afficher le répertoire courant |
Set-Location |
cd |
cd |
Changer de répertoire |
Get-ChildItem |
ls, dir |
dir, ls |
Lister fichiers et dossiers |
Push-Location |
pushd |
pushd |
Empiler le répertoire courant |
Pop-Location |
popd |
popd |
Revenir au répertoire empilé |
Gérer les fichiers et dossiers
# Créer un dossier
New-Item -Path C:Lab -ItemType Directory
# Créer un fichier texte
New-Item -Path C:Labnotes.txt -ItemType File
# Copier un fichier
Copy-Item -Path C:Labnotes.txt -Destination C:Backupnotes.txt
# Déplacer un fichier
Move-Item -Path C:Labnotes.txt -Destination C:LabArchivesnotes.txt
# Supprimer un fichier
Remove-Item -Path C:LabArchivesnotes.txt
# Supprimer un dossier et son contenu
Remove-Item -Path C:LabArchives -Recurse -Force
# Renommer un fichier
Rename-Item -Path C:Labold.txt -NewName new.txt
Attention : Remove-Item -Recurse -Force supprime sans confirmation. C’est l’équivalent de rm -rf sous Linux : puissant mais dangereux. Vérifiez toujours votre chemin avant d’exécuter.
Gérer les processus et services

L’administration d’un serveur Windows passé par la gestion des processus et des services. Voici les commandes clés.
# Lister tous les processus
Get-Process
# Filtrer par nom
Get-Process -Name chrome
# Trier par consommation mémoire (top 10)
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 Name, @{N='RAM(MB)';E={[math]::Round($_.WorkingSet64/1MB,1)}}
# Arrêter un processus
Stop-Process -Name notepad
Stop-Process -Id 1234
# Lister tous les services
Get-Service
# Filtrer les services en cours d'exécution
Get-Service | Where-Object {$_.Status -eq 'Running'}
# Démarrer / arrêter / redémarrer un service
Start-Service -Name Spooler
Stop-Service -Name Spooler
Restart-Service -Name Spooler
| Cmdlet | Usage | Exemple BTS SIO |
|---|---|---|
Get-Process |
Lister les processus actifs | Diagnostiquer un serveur lent |
Stop-Process |
Tuer un processus | Arrêter un service planté |
Get-Service |
Lister les services Windows | Vérifier que DHCP ou DNS tourne |
Restart-Service |
Redémarrer un service | Relancer le service DNS après modif |
Lire, filtrer et exporter des données
La vraie puissance de PowerShell réside dans le pipeline (|) et les cmdlets de filtrage. C’est ce qui le distingue fondamentalement de CMD.
# Lire le contenu d'un fichier
Get-Content -Path C:Logsapp.log
# Afficher les 20 dernières lignes (tail)
Get-Content -Path C:Logsapp.log -Tail 20
# Suivre un fichier en temps réel (tail -f)
Get-Content -Path C:Logsapp.log -Wait
# Filtrer avec Where-Object
Get-Process | Where-Object {$_.CPU -gt 100}
# Sélectionner des colonnes avec Select-Object
Get-Process | Select-Object Name, Id, CPU, WorkingSet64
# Trier
Get-Process | Sort-Object CPU -Descending
# Exporter en CSV
Get-Process | Select-Object Name, Id, CPU | Export-Csv -Path C:Rapportprocesses.csv -NoTypeInformation
# Exporter en JSON
Get-Service | ConvertTo-Json | Out-File C:Rapportservices.json
# Compter des éléments
(Get-Process).Count
Get-Service | Measure-Object
Un exemple concret de TP BTS SIO : exporter la liste des services Windows arrêtés dans un CSV pour un rapport d’audit :
Get-Service | Where-Object {$_.Status -eq 'Stopped'} |
Select-Object Name, DisplayName, StartType |
Export-Csv -Path C:Auditservices_arretes.csv -NoTypeInformation -Encoding UTF8
Les cmdlets de découverte : Get-Help, Get-Command, Get-Member
Ces trois commandes sont les plus importantes à retenir. Elles vous permettent de vous auto-former directement depuis le terminal.
# Obtenir l'aide d'une commande
Get-Help Get-Process
Get-Help Get-Process -Examples # exemples d'utilisation
Get-Help Get-Process -Full # aide complète
# Mettre à jour l'aide (à faire une fois)
Update-Help -Force
# Chercher une commande par verbe
Get-Command -Verb Get
Get-Command -Verb Set
# Chercher une commande par nom
Get-Command *service*
Get-Command *firewall*
# Découvrir les propriétés d'un objet
Get-Process | Get-Member
Get-Service | Get-Member -MemberType Property
| Cmdlet | Ce qu’elle fait | Quand l’utiliser |
|---|---|---|
Get-Help |
Affiche la documentation d’une cmdlet | Quand vous ne connaissez pas les paramètres |
Get-Command |
Liste les cmdlets disponibles | Quand vous cherchez une commande |
Get-Member |
Affiche les propriétés/méthodes d’un objet | Quand vous voulez savoir ce qu’un objet contient |
Créer et exécuter son premier script .ps1
Un script PowerShell est un fichier texte avec l’extension .ps1. Par défaut, Windows bloque l’exécution de scripts pour des raisons de sécurité. Voici comment débloquer et créer votre premier script.
Configurer la politique d’exécution
# Vérifier la politique actuelle
Get-ExecutionPolicy
# Autoriser l'exécution de scripts locaux (en admin)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Premier script : audit système
Créez un fichier audit.ps1 avec le contenu suivant :
# audit.ps1 - Script d'audit système basique
$date = Get-Date -Format "yyyy-MM-dd HH:mm"
$hostname = $env:COMPUTERNAME
$os = (Get-CimInstance Win32_OperatingSystem).Caption
$ram = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory/1GB, 1)
$cpu = (Get-CimInstance Win32_Processor).Name
$disk = Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID, @{N='Taille(GB)';E={[math]::Round($_.Size/1GB,1)}},
@{N='Libre(GB)';E={[math]::Round($_.FreeSpace/1GB,1)}}
Write-Host "=== Audit Système - $date ===" -ForegroundColor Cyan
Write-Host "Hostname : $hostname"
Write-Host "OS : $os"
Write-Host "CPU : $cpu"
Write-Host "RAM : $ram Go"
Write-Host ""
Write-Host "Disques :" -ForegroundColor Yellow
$disk | Format-Table -AutoSize
Exécutez-le avec .audit.ps1 depuis le répertoire du script. Ce type de script fait partie des exercices classiques du BTS SIO.
PowerShell et Active Directory : le duo BTS SIO
Si vous préparez le BTS SIO option SISR, la gestion d’Active Directory avec PowerShell est une compétence évaluée en entreprise et lors des épreuves. Le module ActiveDirectory (inclus dans les RSAT) fournit des dizaines de cmdlets pour gérer les utilisateurs, les groupes et les unités d’organisation sans passer par l’interface graphique.
Installer le module Active Directory
# Sur Windows Server (rôle AD DS installé)
Import-Module ActiveDirectory
# Sur un poste client Windows 10/11 (RSAT)
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
# Vérifier que le module est disponible
Get-Module -ListAvailable | Where-Object {$_.Name -eq 'ActiveDirectory'}
Commandes AD essentielles
| Cmdlet AD | Usage | Exemple |
|---|---|---|
Get-ADUser |
Lister/rechercher des utilisateurs | Get-ADUser -Filter * -SearchBase "OU=Etudiants,DC=lab,DC=local" |
New-ADUser |
Créer un utilisateur | New-ADUser -Name "Jean Dupont" -SamAccountName jdupont -Path "OU=Etudiants,DC=lab,DC=local" |
Set-ADUser |
Modifier un utilisateur | Set-ADUser jdupont -EmailAddress "[email protected]" |
New-ADGroup |
Créer un groupe | New-ADGroup -Name "Developpeurs" -GroupScope Global |
Add-ADGroupMember |
Ajouter un membre | Add-ADGroupMember -Identity "Developpeurs" -Members jdupont |
Get-ADComputer |
Lister les machines | Get-ADComputer -Filter * | Select-Object Name, OperatingSystem |
Cas pratique : créer 20 utilisateurs en masse
Au lieu de créer chaque utilisateur à la main dans la console ADUC (20 minutes de clics), un script PowerShell fait le travail en 10 secondes :
# creation_users.ps1 - Import CSV et création en masse
$csv = Import-Csv -Path "C:Scriptsetudiants.csv" -Delimiter ";"
# Le CSV contient : Prenom;Nom;Login;MotDePasse;OU
foreach ($u in $csv) {
$secPwd = ConvertTo-SecureString $u.MotDePasse -AsPlainText -Force
New-ADUser -Name "$($u.Prenom) $($u.Nom)" `
-GivenName $u.Prenom `
-Surname $u.Nom `
-SamAccountName $u.Login `
-UserPrincipalName "$($u.Login)@lab.local" `
-Path $u.OU `
-AccountPassword $secPwd `
-Enabled $true `
-ChangePasswordAtLogon $true
Write-Host "Créé : $($u.Login)" -ForegroundColor Green
}
Write-Host "`n$($csv.Count) utilisateurs créés." -ForegroundColor Cyan
Ce type de script est un classique des TP BTS SIO SISR. Il montre au jury que vous savez automatiser des tâches répétitives, ce qui est exactement ce que les entreprises attendent d’un technicien système.
5 exercices pratiques pour progresser
La meilleure façon d’apprendre PowerShell est de pratiquer. Voici 5 exercices progressifs que vous pouvez réaliser sur votre poste ou dans votre homelab.
- Exercice 1 : Listez tous les fichiers
.logde plus de 1 Mo dansC:Windowset exportez le résultat en CSV (indices :Get-ChildItem -Recurse -Filter,Where-Object,Export-Csv) - Exercice 2 : Créez un script qui affiche les 5 processus les plus gourmands en RAM, avec le nom et la consommation en Mo
- Exercice 3 : Écrivez un script qui vérifie si les services DHCP, DNS et Spooler sont en cours d’exécution, et affiche une alerte pour ceux qui sont arrêtés
- Exercice 4 : Créez un script d’inventaire réseau qui fait un
Test-Connectionsur une plage d’adresses IP (192.168.1.1 à 192.168.1.254) et liste les machines qui répondent - Exercice 5 : Automatisez la création d’une arborescence de dossiers pour un projet (
src/,docs/,tests/,config/) avec un fichierREADME.mddans chaque dossier
Pour chaque exercice, essayez d’abord seul, puis consultez Get-Help si vous bloquez. Documenter vos solutions dans un dépôt Git crée un portfolio de scripts réutilisables en entreprise.
Tableau récapitulatif : 25 commandes essentielles
| # | Cmdlet | Alias | Usage |
|---|---|---|---|
| 1 | Get-Help |
help | Afficher l’aide d’une commande |
| 2 | Get-Command |
gcm | Chercher une commande |
| 3 | Get-Member |
gm | Propriétés/méthodes d’un objet |
| 4 | Get-Location |
pwd | Répertoire courant |
| 5 | Set-Location |
cd | Changer de répertoire |
| 6 | Get-ChildItem |
ls, dir | Lister fichiers/dossiers |
| 7 | New-Item |
ni | Créer fichier/dossier |
| 8 | Copy-Item |
cp | Copier |
| 9 | Move-Item |
mv | Déplacer/renommer |
| 10 | Remove-Item |
rm, del | Supprimer |
| 11 | Get-Content |
cat, type | Lire un fichier |
| 12 | Set-Content |
sc | Écrire dans un fichier |
| 13 | Get-Process |
ps | Lister les processus |
| 14 | Stop-Process |
kill | Tuer un processus |
| 15 | Get-Service |
gsv | Lister les services |
| 16 | Start-Service |
sasv | Démarrer un service |
| 17 | Stop-Service |
spsv | Arrêter un service |
| 18 | Restart-Service |
– | Redémarrer un service |
| 19 | Where-Object |
where, ? | Filtrer des objets |
| 20 | Select-Object |
select | Choisir des propriétés |
| 21 | Sort-Object |
sort | Trier |
| 22 | Measure-Object |
measure | Compter/statistiques |
| 23 | Export-Csv |
epcsv | Exporter en CSV |
| 24 | ConvertTo-Json |
– | Convertir en JSON |
| 25 | Test-Connection |
ping | Tester la connectivité réseau |
Quiz : testez vos bases PowerShell
À retenir
- texte brut : chaque commande produit une chaîne de caractères que vous devez parser manuellement avec des outils comme
- Menu Démarrer : tapez « PowerShell » et cliquez sur Windows PowerShell
- Exercice 1 : Listez tous les fichiers
- Exercice 2 : Créez un script qui affiche les 5 processus les plus gourmands en RAM, avec le nom et la consommation en Mo
- Exercice 3 : Écrivez un script qui vérifie si les services DHCP, DNS et Spooler sont en cours d’exécution, et affiche une alerte pour ceux qui sont arrêtés
Questions fréquentes
Conclusion : PowerShell, la compétence qui fait la différence
Maîtriser 25 commandes PowerShell vous place déjà au-dessus de la majorité des candidats au BTS SIO. En entreprise, les administrateurs système qui automatisent avec PowerShell gagnent des heures chaque semaine par rapport à ceux qui cliquent manuellement dans des interfaces graphiques.
Commencez par les commandes de navigation et de lecture (Get-ChildItem, Get-Content, Get-Process). Puis apprenez le pipeline avec Where-Object et Select-Object. Enfin, écrivez vos premiers scripts d’audit et d’automatisation. Chaque commande apprise est un outil de plus dans votre boîte à outils d’administrateur.
Pour aller plus loin, consultez nos guides sur les commandes Linux essentielles, Git pour débutant et l’introduction au DevOps.
Questions fréquentes
Quelle est la différence entre PowerShell et l’invite de commandes (CMD) ?
CMD manipule du texte brut et utilisé des commandes héritées de MS-DOS. PowerShell manipule des objets .NET, dispose d’un langage de scripting complet et peut interagir nativement avec Active Directory, le registre Windows et les API .NET. Pour l’administration système moderne, PowerShell est le choix par défaut.
Oui. PowerShell 7 (PowerShell Core) est multiplateforme. Vous pouvez l’installer sur Ubuntu, Debian, macOS via les packages officiels Microsoft. Les cmdlets de base fonctionnent de manière identique, mais les cmdlets spécifiques Windows (Active Directory, registre) ne sont pas disponibles sur les autres OS.PowerShell fonctionne-t-il sur Linux et macOS ?
Sous Windows 11 : clic droit sur le bouton Démarrer → Terminal Windows (Administrateur). Sous Windows 10 : cherchez « PowerShell » dans le menu Démarrer, clic droit → Exécuter en tant qu’administrateur. L’élévation est nécessaire pour gérer les services, modifier le registre ou installer des modules.Comment ouvrir PowerShell en tant qu’administrateur ?
D’abord, vérifiez que la politique d’exécution autorisé les scripts : Comment exécuter un script .ps1 ?
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. Ensuite, naviguez vers le dossier du script et tapez .mon_script.ps1. Le préfixe . est obligatoire pour les scripts locaux.
Formatrice IT indépendante depuis 2016, ancienne étudiante BTS SIO SLAM. 6 ans d'expérience en entreprise.