Skip to content

PowerShell ​

PowerShell est un terminal et un langage de script développé par Microsoft, conçu pour automatiser l'administration Windows. Les commandes s'appellent des cmdlets et suivent toujours la convention Verbe-Nom.

Variables ​

Les variables commencent toujours par $. Le type est dynamique, mais peut être forcé.

powershell
$nom   = "Alice"
$age   = 21
$actif = $true

# Typage forcé
[int]$nb = "42"       # cast automatique → 42
[string]$s = 123      # → "123"

# Connaître le type
$nom.GetType().Name   # String

Interpolation de chaînes ​

powershell
$prenom = "Bob"
Write-Host "Bonjour $prenom !"         # → Bonjour Bob !
Write-Host 'Bonjour $prenom !'         # → Bonjour $prenom ! (pas d'interpolation)
Write-Host "Résultat : $(2 + 2)"       # → Résultat : 4

Types courants ​

Type PowerShellExempleÉquivalent Python
[string]"Bonjour"str
[int]42int
[double]3.14float
[bool]$true / $falseTrue / False
[datetime]Get-Datedatetime
[array]@(1, 2, 3)list
[hashtable]@{clé="val"}dict

Valeur nulle : $null

Tableaux ​

powershell
$fruits = @("pomme", "poire", "kiwi")

$fruits[0]       # pomme
$fruits[-1]      # kiwi (dernier élément)
$fruits.Count    # 3
$fruits += "banane"   # ajouter un élément

Hashtables ​

powershell
$user = @{
    Nom   = "Alice"
    Age   = 21
    Admin = $true
}

$user["Nom"]   # Alice
$user.Nom      # Alice (notation point)
$user["Email"] = "alice@bts.fr"   # ajouter une clé
$user.Keys     # lister les clés

Opérateurs de comparaison ​

PowerShellSignification
-eqÉgal
-neDifférent
-ltInférieur
-leInférieur ou égal
-gtSupérieur
-geSupérieur ou égal
-and / -or / -notLogique
-like "*.txt"Wildcard (joker)
%Modulo (reste de la division)

Attention

PowerShell n'utilise pas == ou < pour les comparaisons.

Conditions ​

powershell
$age = 17

if ($age -ge 18) {
    Write-Host "Majeur"
} elseif ($age -ge 16) {
    Write-Host "Presque majeur"
} else {
    Write-Host "Mineur"
}

Boucles ​

for ​

powershell
for ($i = 0; $i -lt 5; $i++) {
    Write-Host "Itération $i"
}

while ​

powershell
$compteur = 0
while ($compteur -lt 3) {
    Write-Host "Compteur : $compteur"
    $compteur++
}

foreach ​

powershell
$serveurs = @("SRV01", "SRV02", "SRV03")

foreach ($srv in $serveurs) {
    Write-Host "Traitement de $srv"
}
CmdletRôle
Get-LocationAfficher le dossier courant
Set-Location C:\dossierChanger de dossier
Get-ChildItemLister le contenu d'un dossier
Get-ChildItem -Filter "*.exe"Filtrer par extension
New-Item -Path "..." -ItemType DirectoryCréer un dossier
New-Item -Path "..." -ItemType FileCréer un fichier
Remove-Item "..."Supprimer
Copy-ItemCopier
Move-ItemDéplacer
Test-Path "..."Vérifier si un chemin existe
Get-Content "..."Lire un fichier
"texte" | Out-File "..."Écrire dans un fichier
Add-Content -Path "..." -Value "..."Ajouter à la fin d'un fichier

Système ​

CmdletRôle
Get-ProcessLister les processus
Get-ServiceLister les services
Get-Service -Name "Spooler"État d'un service
Write-Host "texte" -ForegroundColor GreenAfficher en couleur
$env:COMPUTERNAMENom de la machine
Get-DateDate et heure actuelles
(Get-Date).YearAnnée en cours
Get-PSDrive -PSProvider FileSystemLister les disques locaux

Aide intégrée ​

powershell
Get-Help Get-Process            # aide sur une cmdlet
Get-Help Get-Process -Examples  # exemples concrets
Get-Command -Verb Get           # toutes les cmdlets Get-
Get-Command -Name "*service*"   # chercher par mot-clé