Tous les outils
Gratuit

Une référence PowerShell imprimable et consultable — cmdlets, le pipeline, variables, fichiers, boucles, fonctions, objets et administration. Gratuit.

Aide et découverte

12
Get-Help Get-Process
Afficher l'aide d'une cmdlet
Get-Help Get-Process -Examples
Afficher des exemples d'usage d'une cmdlet
Get-Help Get-Process -Full
Afficher l'aide complète avec les paramètres
Get-Help about_Functions
Lire une rubrique conceptuelle about_
Update-Help
Télécharger les derniers fichiers d'aide
Get-Command -Noun Process
Lister les cmdlets agissant sur un nom
Get-Command -Verb Get
Lister les cmdlets utilisant un verbe donné
Get-Command *service*
Rechercher des commandes par nom avec joker
Get-Process | Get-Member
Lister les propriétés et méthodes des objets
Get-Alias ls
Afficher la commande à laquelle un alias renvoie
Get-Alias -Definition Get-ChildItem
Lister tous les alias d'une cmdlet
$PSVersionTable
Afficher la version et l'édition de PowerShell

Variables et types

13
$x = 5
Affecter une valeur à une variable
[int]$n = '42'
Déclarer une variable fortement typée
$null
La valeur null / vide
$true; $false
Littéraux booléens
$arr = @(1, 2, 3)
Créer un tableau
$arr += 4
Ajouter un élément à un tableau
$arr[0]; $arr[-1]
Indexer le premier et le dernier élément du tableau
$hash = @{ Name = 'Ann'; Age = 30 }
Créer une table de hachage
$hash['Name']; $hash.Name
Lire une valeur de table de hachage par clé
$env:PATH
Lire une variable d'environnement
$env:MY_VAR = 'value'
Définir une variable d'environnement pour la session
Get-Variable
Lister toutes les variables définies
[math]::Round(3.14159, 2)
Appeler une méthode statique .NET

Pipeline et filtrage

12
Get-Process | Where-Object { $_.CPU -gt 10 }
Filtrer des objets par une condition
Get-Process | ? CPU -gt 10
Filtrer avec l'alias ? et la syntaxe simplifiée
Get-Process | ForEach-Object { $_.Name }
Exécuter un bloc de script pour chaque objet
Get-Process | % { $_.Kill() }
Itérer avec l'alias %
Get-Process | Select-Object Name, Id
Ne garder que certaines propriétés
Get-Process | Select-Object -First 5
Prendre les N premiers objets
Get-Process | Sort-Object CPU -Descending
Trier des objets par une propriété
Get-Process | Group-Object Company
Grouper des objets par une propriété
Get-Process | Measure-Object CPU -Sum
Agréger des valeurs numériques (somme, moyenne)
Get-ChildItem | Select-Object -Unique
Renvoyer des objets distincts
1..5 | ForEach-Object { $_ * 2 }
Faire passer une plage par une transformation
Get-Process | Out-GridView
Envoyer les résultats vers une grille interactive

Fichiers et chemins

13
Get-ChildItem -Path C:\Logs
Lister les éléments d'un répertoire (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Lister récursivement les fichiers correspondants
Get-Content .\file.txt
Lire un fichier ligne par ligne
Get-Content .\file.txt -Tail 20
Lire les N dernières lignes d'un fichier
Set-Content .\file.txt -Value 'Hi'
Écrire (écraser) du texte dans un fichier
Add-Content .\file.txt -Value 'Hi'
Ajouter du texte à un fichier
Copy-Item a.txt b.txt
Copier un fichier ou un répertoire
Move-Item a.txt .\dir\
Déplacer ou renommer un élément
Remove-Item a.txt -Force
Supprimer un fichier ou un répertoire
New-Item -ItemType Directory -Path .\dir
Créer un nouveau fichier ou répertoire
Test-Path .\file.txt
Vérifier si un chemin existe
Get-Location
Afficher le répertoire courant (alias pwd)
Set-Location C:\Temp
Changer de répertoire courant (alias cd)

Chaînes et texte

12
'Hello World' -match 'World'
Tester une chaîne avec une regex
'Hello' -replace 'l', 'L'
Remplacer du texte avec une regex
'a,b,c' -split ','
Diviser une chaîne en tableau par regex
'a-b-c'.Split('-')
Diviser avec la méthode String de .NET
'a', 'b' -join ', '
Joindre les éléments d'un tableau en chaîne
Select-String -Path *.log -Pattern 'error'
Recherche façon grep dans les fichiers
'{0} of {1}' -f 3, 10
Formater une chaîne avec des emplacements
' hi '.Trim()
Supprimer les espaces en début et en fin
'Hello'.ToUpper()
Convertir une chaîne en majuscules
'Hello'.Substring(0, 3)
Extraire une sous-chaîne par index et longueur
'Hello'.Contains('ell')
Tester si une chaîne contient un texte
'Hello'.Length
Obtenir le nombre de caractères

Boucles et conditions

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Brancher avec if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Faire correspondre une valeur à des cas
foreach ($i in $arr) { $i }
Itérer sur une collection
for ($i = 0; $i -lt 5; $i++) { $i }
Boucle comptée avec un index
while ($x -lt 10) { $x++ }
Boucler tant qu'une condition est vraie
do { $x++ } while ($x -lt 10)
Boucler au moins une fois, puis tester
$x -eq 5; $x -ne 5
Comparaisons d'égalité et de différence
$x -gt 5; $x -lt 5
Comparaisons supérieur et inférieur
$x -ge 5; $x -le 5
Comparaisons supérieur/inférieur ou égal
'abc' -like 'a*'
Comparaison de correspondance avec joker
@(1, 2, 3) -contains 2
Tester l'appartenance à un tableau
break; continue
Sortir ou ignorer l'itération courante de la boucle

Fonctions et scripts

12
function Get-Sum { param($a, $b) $a + $b }
Définir une fonction avec des paramètres
Get-Sum -a 2 -b 3
Appeler une fonction avec des arguments nommés
function Test { param([int]$n = 1) }
Paramètre typé avec une valeur par défaut
param([Parameter(Mandatory)]$Name)
Exiger qu'un paramètre soit fourni
return $value
Renvoyer une valeur depuis une fonction
function F { [CmdletBinding()] param() }
Créer une fonction avancée (paramètres communs)
Write-Verbose 'msg' -Verbose
Émettre un flux de messages détaillés
Write-Output $result
Envoyer un objet dans le pipeline
Write-Error 'failed'
Écrire dans le flux d'erreur
.\script.ps1 -Arg value
Exécuter un fichier script avec des arguments
. .\functions.ps1
Sourcer un script (dot-source) dans la session
try { } catch { $_ } finally { }
Gérer les erreurs bloquantes

Objets et propriétés

12
Get-Process | Select-Object -ExpandProperty Name
Renvoyer les valeurs brutes des propriétés, pas les objets
(Get-Process).Name
Accéder à une propriété sur chaque objet
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Ajouter une propriété calculée
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Construire un objet personnalisé
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Attacher une propriété à un objet
$obj.PSObject.Properties.Name
Lister les noms de propriétés d'un objet
$obj | Format-Table -AutoSize
Afficher les objets en tableau aligné
$obj | Format-List *
Afficher toutes les propriétés en liste
$obj | ConvertTo-Json -Depth 5
Sérialiser un objet en JSON
Get-Content data.json | ConvertFrom-Json
Analyser du JSON en objets
$obj | Export-Csv out.csv -NoTypeInformation
Exporter des objets vers un fichier CSV
Import-Csv data.csv
Lire un fichier CSV en objets

Processus et services

12
Get-Process
Lister les processus en cours (alias ps)
Get-Process -Name chrome
Obtenir des processus par nom
Stop-Process -Name notepad -Force
Terminer un processus
Start-Process notepad.exe
Lancer un nouveau processus
Get-Service
Lister les services Windows
Get-Service -Name wuauserv
Obtenir un service par nom
Start-Service -Name wuauserv
Démarrer un service arrêté
Stop-Service -Name wuauserv
Arrêter un service en cours
Restart-Service -Name wuauserv
Redémarrer un service
Set-Service -Name wuauserv -StartupType Manual
Changer le mode de démarrage d'un service
Get-EventLog -LogName System -Newest 20
Lire les entrées récentes du journal d'événements classique
Get-WinEvent -LogName Application -MaxEvents 20
Interroger les journaux d'événements modernes

Accès distant et travaux

12
Enter-PSSession -ComputerName Srv01
Démarrer une session distante interactive
Exit-PSSession
Quitter une session distante interactive
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Exécuter une commande sur un hôte distant
$s = New-PSSession -ComputerName Srv01
Créer une session distante persistante
Invoke-Command -Session $s -ScriptBlock { hostname }
Réutiliser une session distante existante
Remove-PSSession $s
Fermer et supprimer une session distante
Start-Job -ScriptBlock { Get-Process }
Exécuter une commande en travail d'arrière-plan
Get-Job
Lister les travaux d'arrière-plan et leur état
Receive-Job -Id 1 -Keep
Récupérer la sortie d'un travail
Wait-Job -Id 1
Bloquer jusqu'à la fin d'un travail
Stop-Job -Id 1; Remove-Job -Id 1
Arrêter et supprimer un travail d'arrière-plan
Get-Process | Start-ThreadJob { $input }
Exécuter des travaux de thread légers en cours de processus

Modules et paquets

12
Get-Module
Lister les modules actuellement chargés
Get-Module -ListAvailable
Lister tous les modules installés
Import-Module Pester
Charger un module dans la session
Remove-Module Pester
Décharger un module de la session
Find-Module -Name PSReadLine
Rechercher un module dans la galerie
Install-Module PSReadLine -Scope CurrentUser
Installer un module depuis la galerie
Update-Module PSReadLine
Mettre à jour un module installé
Uninstall-Module PSReadLine
Supprimer un module installé
Get-ExecutionPolicy
Afficher la politique d'exécution de scripts actuelle
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Autoriser l'exécution des scripts signés et locaux
Get-PSRepository
Lister les dépôts de paquets configurés
$PROFILE
Chemin du script de profil de l'utilisateur courant

Aucune entrée ne correspond à « :q ».


Besoin d'aide ?
Un problème avec cet outil ? Signalez-le à notre équipe.
Signaler un problème

Ajoutez cet outil gratuit à votre propre site web — copiez-collez le code ci-dessous.