You are currently viewing PowerShell pour débutants : 25 commandes essentielles (avec exemples BTS SIO)

PowerShell pour débutants : 25 commandes essentielles (avec exemples BTS SIO)

  • Auteur/autrice de la publication :
  • Post category:DevOps
Niveau : Débutant

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.

PowerShell n’est plus réservé à Windows. Depuis la version 7 (PowerShell Core), il fonctionne aussi sur Linux et macOS. Les principes que vous apprenez ici sont utilisables sur tous les systèmes d’exploitation.

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.

Le pipeline PowerShell transmet des objets, pas du texte : le filtrage et le tri deviennent natifs.
Le pipeline PowerShell transmet des objets, pas du texte : le filtrage et le tri deviennent natifs.
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 :

  1. Menu Démarrer : tapez « PowerShell » et cliquez sur Windows PowerShell
  2. Raccourci clavier : Win+X puis sélectionnez « Terminal Windows » (Windows 11)
  3. Depuis l’explorateur : Shift + clic droit dans 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

En entreprise, les administrateurs qui automatisent avec PowerShell gagnent des heures chaque semaine.
En entreprise, les administrateurs qui automatisent avec PowerShell gagnent des heures chaque semaine.

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.

  1. Exercice 1 : Listez tous les fichiers .log de plus de 1 Mo dans C:Windows et exportez le résultat en CSV (indices : Get-ChildItem -Recurse -Filter, Where-Object, Export-Csv)
  2. Exercice 2 : Créez un script qui affiche les 5 processus les plus gourmands en RAM, avec le nom et la consommation en Mo
  3. 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
  4. Exercice 4 : Créez un script d’inventaire réseau qui fait un Test-Connection sur une plage d’adresses IP (192.168.1.1 à 192.168.1.254) et liste les machines qui répondent
  5. Exercice 5 : Automatisez la création d’une arborescence de dossiers pour un projet (src/, docs/, tests/, config/) avec un fichier README.md dans 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.

PowerShell fonctionne-t-il sur Linux et macOS ?

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.

Comment ouvrir PowerShell en tant qu’administrateur ?

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 exécuter un script .ps1 ?

D’abord, vérifiez que la politique d’exécution autorisé les scripts : 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.

Lucie Moreau
Lucie Moreau

Formatrice IT indépendante depuis 2016, ancienne étudiante BTS SIO SLAM. 6 ans d'expérience en entreprise.

Lucie Moreau

Formatrice IT indépendante depuis 2016, ancienne étudiante BTS SIO SLAM. 6 ans d'expérience en entreprise.