MaisTools
Guides/

Aide-mémoire PowerShell

Référence rapide de PowerShell : cmdlets, options, exemples et pipeline d'objets, organisés par section avec recherche instantanée.

Aide-mémoire PowerShell

Cmdlets, pipeline d'objets et one-liners

Navigation

Get-ChildItem

Liste les fichiers et répertoires. Alias ls, gci, dir. -Recurse parcourt tout, -Force inclut les cachés.

Options-Recurse-Force-Filter-Include-Exclude-File-Directory-Depth
Exemple
Get-ChildItem
Get-ChildItem -Recurse -Filter *.ts
Get-ChildItem -Force
gci -Directory
Set-Location

Change le répertoire courant. Alias cd. Supporte - pour le précédent et ~ pour le home.

Options-Path-LiteralPath-PassThru
Exemple
Set-Location s:\MaisTools
cd ~
cd ..
Get-Location

Affiche le chemin actuel. Alias pwd.

Exemple
Get-Location
pwd
Test-Path

Vérifie si un chemin existe. Retourne $true ou $false.

Options-PathType-IsValid-NewerThan-OlderThan
Exemple
Test-Path .\file.txt
Test-Path .\src -PathType Container
if (Test-Path .\dir) { 'existe' }
Push-Location / Pop-Location

Sauvegarde le répertoire courant dans une pile (Push) et y revient (Pop). Utile dans les scripts.

Options-Path-StackName
Exemple
Push-Location C:\Temp
# ...trabalho aqui...
Pop-Location
Resolve-Path

Résout un chemin relatif en absolu, ou l'inverse avec -Relative.

Options-Relative-LiteralPath
Exemple
Resolve-Path .\src
Resolve-Path -Relative C:\Temp\file.txt

Fichiers

New-Item

Crée des fichiers, répertoires ou liens symboliques. -ItemType définit le type. -Force sur un fichier existant le tronque.

Options-ItemType-Path-Force-Value
Exemple
New-Item -ItemType File novo.txt
New-Item -ItemType Directory -Force pasta\sub
New-Item -ItemType SymbolicLink -Path link -Target target
Copy-Item

Copie des fichiers ou répertoires. -Recurse pour les arborescences, -Force écrase la destination.

Options-Recurse-Force-Filter-Include-Exclude-Destination
Exemple
Copy-Item a.txt b.txt
Copy-Item -Recurse src\ dest\
Copy-Item *.log -Destination archive\
Move-Item

Déplace ou renomme des fichiers et répertoires.

Options-Force-Destination-Filter
Exemple
Move-Item old.txt new.txt
Move-Item *.log archive\
Remove-Item

Supprime des fichiers ou répertoires. -Recurse -Force supprime sans confirmation (dangereux).

Options-Recurse-Force-Filter-Include-Confirm
Exemple
Remove-Item file.txt
Remove-Item -Recurse -Force node_modules
Remove-Item *.tmp
Rename-Item

Renomme des fichiers. Accepte un ScriptBlock dans -NewName pour le renommage en masse.

Options-NewName-Force
Exemple
Rename-Item old.txt new.txt
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$','.md' }
Get-Item

Obtient les infos d'un élément (Length, LastWriteTime, etc.). Ne lit pas le contenu, seulement les métadonnées.

Options-Force-Stream
Exemple
Get-Item .\file.txt
(Get-Item file.txt).Length
Get-Item file.txt | Select-Object Name, Length, LastWriteTime

Contenu

Get-Content

Lit le contenu d'un fichier. -TotalCount comme head, -Tail comme tail, -Wait suit comme tail -f.

Options-TotalCount-Tail-Wait-Raw-Encoding
Exemple
Get-Content file.txt
Get-Content file.txt -TotalCount 10
Get-Content file.txt -Tail 20
Get-Content app.log -Wait -Tail 100
Set-Content

Écrit du contenu dans un fichier, en l'écrasant. -Encoding utf8 évite le défaut UTF-16 avec BOM en PS 5.1.

Options-Value-Encoding-Force-NoNewline
Exemple
Set-Content out.txt 'linha'
'a','b','c' | Set-Content lista.txt -Encoding utf8
Add-Content

Ajoute du contenu à un fichier existant. Équivalent à >> en bash.

Options-Value-Encoding
Exemple
Add-Content log.txt 'nova entrada'
Get-Date | Add-Content log.txt
Out-File

Redirige la sortie vers un fichier. -Append ajoute, -Encoding contrôle l'encodage.

Options-FilePath-Append-Encoding-Width
Exemple
Get-Process | Out-File processes.txt
Get-Service | Out-File -Append -Encoding utf8 services.log
Clear-Content

Vide le contenu d'un fichier sans le supprimer.

Options-Path-Force
Exemple
Clear-Content log.txt
Clear-Content *.tmp

Pipeline

Where-Object

Filtre les objets du pipeline par condition. Alias ? et where. Supporte la syntaxe abrégée Propriété -op Valeur.

Options-FilterScript-Property
Exemple
Get-Process | Where-Object { $_.CPU -gt 10 }
Get-Service | Where-Object Status -eq Running
gci | ? { $_.Length -gt 1MB }
Sort-Object

Trie les objets par propriété. -Descending inverse, -Unique supprime les doublons.

Options-Property-Descending-Unique
Exemple
Get-Process | Sort-Object CPU -Descending
Get-ChildItem | Sort-Object Length -Descending
'b','a','c' | Sort-Object
Select-Object

Sélectionne N objets du pipeline ou des propriétés de chaque objet. -ExpandProperty extrait la valeur.

Options-First-Last-Skip-Property-ExpandProperty-Unique
Exemple
Get-Process | Select-Object -First 5
Get-Process | Select-Object Name, CPU, WS
Get-Service | Select-Object -ExpandProperty Name
ForEach-Object

Itère sur le pipeline en appliquant un bloc à chaque objet. Alias % et foreach. -Parallel en parallèle (PS 7+).

Options-Process-Begin-End-Parallel
Exemple
Get-ChildItem | ForEach-Object { $_.Name.ToUpper() }
1..5 | %{ $_ * 2 }
$urls | ForEach-Object -Parallel { Invoke-WebRequest $_ }
Measure-Object

Compte, somme, moyenne, max ou min d'une collection. -Line, -Word, -Character pour le texte.

Options-Property-Sum-Average-Maximum-Minimum-Line-Word-Character
Exemple
Get-Process | Measure-Object -Property WS -Sum -Average
Get-Content file.txt | Measure-Object -Line
Get-ChildItem | Measure-Object
Group-Object

Regroupe les objets par propriété. Utile pour compter les occurrences ou créer des dictionnaires avec -AsHashTable.

Options-Property-NoElement-AsHashTable
Exemple
Get-Process | Group-Object ProcessName
Get-ChildItem | Group-Object Extension -NoElement

Recherche

Select-String

Recherche des motifs dans des chaînes ou fichiers. Équivalent de grep. -Pattern accepte regex, -SimpleMatch le désactive.

Options-Pattern-Path-Recurse-CaseSensitive-NotMatch-Context-SimpleMatch
Exemple
Select-String 'TODO' *.ts
Select-String -Path src\*.ts -Pattern 'error' -CaseSensitive
Get-ChildItem -Recurse | Select-String 'API_KEY'
Get-Command

Affiche les cmdlets disponibles avec filtres par nom, module ou type. (Get-Command npm).Source donne le chemin.

Options-Name-Module-CommandType-All
Exemple
Get-Command npm
Get-Command *process*
(Get-Command npm).Source
Get-Command -Module Microsoft.PowerShell.Utility
Get-Member

Affiche les propriétés et méthodes d'un objet. Indispensable pour découvrir ce qu'on peut faire avec un type.

Options-MemberType-Static-Name
Exemple
Get-Process | Get-Member
(Get-Date) | Get-Member -MemberType Method
'abc' | Get-Member
Get-Help

Affiche l'aide des cmdlets ou des sujets about_*. -Examples montre des exemples, -Online ouvre la version web.

Options-Full-Examples-Online-Detailed-Parameter
Exemple
Get-Help Get-ChildItem
Get-Help Get-Process -Examples
Get-Help about_Variables
Get-Help Set-Content -Online

Variables

$variable

Les variables commencent par $ et ne nécessitent pas de déclaration. Supportent arrays (@()) et hashtables (@{}).

Exemple
$nome = 'Bruno'
$idade = 30
$lista = @(1, 2, 3)
$hash = @{ a = 1; b = 2 }
$env:

Lit et définit les variables d'environnement. Get-ChildItem env: les liste toutes. Modification valable uniquement pour la session.

Exemple
$env:PATH
$env:USERPROFILE
$env:DEBUG = 'true'
Get-ChildItem env:
$null

Valeur nulle. Dans les comparaisons placez $null à gauche ($null -eq $x) pour éviter les surprises avec les arrays.

Exemple
if ($null -eq $var) { 'vazio' }
$lista = @($null, 1, 2)
[string]::IsNullOrEmpty($x)
[type]

Conversion de types avec [type]. Fonctionne pour int, string, datetime, arrays typés, regex.

Exemple
[int]'42'
[datetime]'2026-01-15'
[int[]]$nums = 1,2,3
[regex]::Escape($pattern)
$global: / $script: / $local:

Définit la portée d'une variable : global (toute la session), script (ce fichier) ou local (cette fonction).

Exemple
$global:config = @{}
$script:contador = 0
function f { $local:tmp = 1 }

Chaînes

"$var" interpolation

Les guillemets doubles étendent $var et $(expr). Les guillemets simples sont littéraux et n'étendent rien.

Exemple
$nome = "Bruno"
"Olá $nome"
"Caminho: $($obj.Property)"
'literal $nome'  # sem expansão
@"..."@ / @'...'@

Chaînes multiligne (here-strings). @"..."@ étend les variables, @'...'@ est littéral. La fermeture doit être en colonne 0.

Exemple
@"
linha 1 com $nome
linha 2
"@

@'
literal $nome
'@
-f (format)

Opérateur de formatage style printf. Supporte nombres, dates et alignement ({0,5:N2}).

Exemple
'{0} tem {1} anos' -f $nome, $idade
'{0:N2}' -f 1234.5678  # 1,234.57
'{0:yyyy-MM-dd}' -f (Get-Date)
-replace / -split / -join

Opérations sur chaînes : -replace utilise regex, -split sépare en array, -join concatène un array en chaîne.

Exemple
'abc123' -replace '\d', 'X'
'a,b,c' -split ','
@('a','b','c') -join ', '

Contrôle

if / elseif / else

Structure conditionnelle. Utilise les opérateurs PowerShell (-eq, -lt) au lieu de == ou <.

Exemple
if (Test-Path .\file) {
  'existe'
} elseif ($x -gt 0) {
  'positivo'
} else {
  'outro'
}
switch

Alternative au if enchaîné. -Regex et -Wildcard activent les motifs, -File lit des lignes depuis un fichier.

Options-Regex-Wildcard-CaseSensitive-File
Exemple
switch ($x) {
  1 { 'um' }
  2 { 'dois' }
  default { 'outro' }
}

switch -Regex ($texto) {
  '^\d+$' { 'número' }
}
foreach / for / while

Boucles sur collections (foreach), avec compteur (for), tant que condition (while), ou au moins une fois (do/while).

Exemple
foreach ($f in Get-ChildItem) { $f.Name }
for ($i = 0; $i -lt 5; $i++) { $i }
while ($cond) { ... }
do { ... } while ($cond)
try / catch / finally

Capture d'erreurs. Pour attraper les erreurs non terminantes utilisez -ErrorAction Stop sur le cmdlet.

Exemple
try {
  Cmdlet -ErrorAction Stop
} catch [System.IO.IOException] {
  Write-Error "IO: $_"
} catch {
  Write-Error $_
} finally {
  Cleanup
}
break / continue / return

break sort de la boucle, continue passe à l'itération suivante, return sort de la fonction.

Exemple
foreach ($x in 1..10) {
  if ($x -eq 5) { break }
  if ($x % 2 -eq 0) { continue }
  $x
}

Opérateurs

-eq -ne -lt -gt -le -ge

Opérateurs de comparaison. Pas de == en PowerShell, utilisez toujours -eq, -ne, -lt, -gt, -le, -ge.

Exemple
$x -eq 5     # igual
$x -ne 5     # diferente
$x -lt 10    # menor
$x -gt 0     # maior
$x -le 10    # menor ou igual
$x -ge 0     # maior ou igual
-like / -match / -contains / -in

Autres opérateurs : -like utilise des wildcards, -match du regex, -contains teste l'appartenance, -in est l'inverse.

Exemple
'file.txt' -like '*.txt'         # wildcards
'abc123' -match '\d+'             # regex
@(1,2,3) -contains 2              # pertença
2 -in @(1,2,3)                   # pertença (invertido)
-and / -or / -not / -xor

Opérateurs logiques. -and, -or, -not, -xor. ! est un alias de -not.

Exemple
($x -gt 0) -and ($x -lt 10)
($a -eq 1) -or ($b -eq 2)
-not (Test-Path .\file)
!$cond

Processus

Get-Process

Liste les processus avec propriétés (CPU, WS, Id, ProcessName). Sans argument, liste tout.

Options-Name-Id-IncludeUserName-Module
Exemple
Get-Process
Get-Process node, chrome
Get-Process -Id 1234
Stop-Process

Arrête les processus par nom ou Id. -Force évite la confirmation. Peut recevoir des objets du pipeline.

Options-Name-Id-Force-PassThru
Exemple
Stop-Process -Name node
Stop-Process -Id 1234 -Force
Get-Process node | Stop-Process
Start-Process

Démarre un programme. -Wait bloque jusqu'à la fin, -NoNewWindow exécute dans la console actuelle, -Verb RunAs élève.

Options-FilePath-ArgumentList-WorkingDirectory-Wait-NoNewWindow-Verb
Exemple
Start-Process notepad
Start-Process npm -ArgumentList 'run','dev'
Start-Process pwsh -Verb RunAs
Wait-Process

Attend la fin d'un processus. -Timeout abandonne après N secondes.

Options-Name-Id-Timeout
Exemple
Wait-Process -Name node
Wait-Process -Id 1234 -Timeout 30
& (opérateur d'appel)

Exécute une commande ou un script. Nécessaire quand le chemin contient des espaces ou pour appeler dynamiquement.

Exemple
& 'C:\Program Files\App\app.exe' arg1 arg2
& $cmd
& { Get-Process; Get-Service }

Données

ConvertFrom-Json

Convertit du JSON en objets PowerShell. -AsHashtable retourne une hashtable (PS 6+) au lieu de PSCustomObject.

Options-AsHashtable-Depth-NoEnumerate
Exemple
Get-Content pkg.json | ConvertFrom-Json
'{"a":1}' | ConvertFrom-Json
$obj.dependencies
ConvertTo-Json

Convertit des objets PowerShell en JSON. -Depth contrôle la profondeur (défaut 2, souvent trop bas).

Options-Depth-Compress-AsArray
Exemple
$obj | ConvertTo-Json -Depth 10
@{a=1; b=2} | ConvertTo-Json -Compress
Get-Process | Select-Object Name,Id | ConvertTo-Json
Import-Csv

Lit un CSV en objets avec propriétés. -Delimiter pour ; ou autres, -Header si le fichier n'a pas d'en-tête.

Options-Path-Delimiter-Header-Encoding
Exemple
Import-Csv users.csv
Import-Csv data.csv -Delimiter ';' -Encoding utf8
Export-Csv

Exporte des objets en CSV. -NoTypeInformation supprime la ligne de type en haut (défaut en PS 6+).

Options-Path-Delimiter-NoTypeInformation-Append-Encoding
Exemple
Get-Process | Export-Csv processes.csv -NoTypeInformation
$data | Export-Csv out.csv -Encoding utf8 -Delimiter ';'

Réseau

Invoke-WebRequest

Client HTTP complet. Retourne la réponse comme objet avec .Content, .StatusCode, .Headers. Alias iwr.

Options-Uri-Method-Headers-Body-OutFile-UseBasicParsing
Exemple
Invoke-WebRequest https://example.com
iwr https://api.example.com -OutFile data.json
iwr -Uri $url -Method POST -Body $body
Invoke-RestMethod

Client HTTP qui parse automatiquement JSON ou XML en objets. Le plus utilisé pour les API REST. Alias irm.

Options-Uri-Method-Headers-Body-ContentType
Exemple
Invoke-RestMethod https://api.github.com/users/octocat
irm $url -Method POST -Body ($obj | ConvertTo-Json) -ContentType 'application/json'
Test-NetConnection

Teste la connectivité TCP à un hôte et port. Windows uniquement. Sur Linux/macOS utilisez Test-Connection -TcpPort (PS 7+).

Options-ComputerName-Port-TraceRoute-CommonTCPPort
Exemple
Test-NetConnection google.com -Port 443
Test-NetConnection -ComputerName 8.8.8.8 -TraceRoute
Test-Connection

Équivalent à ping. -Count limite les paquets, -Quiet ne retourne que $true ou $false.

Options-ComputerName-Count-Quiet-Delay
Exemple
Test-Connection google.com -Count 4
Test-Connection 8.8.8.8 -Quiet  # bool

Modules

Get-Module

Liste les modules. -ListAvailable montre tout ce qui est installé, pas seulement ce qui est chargé.

Options-ListAvailable-Name-All
Exemple
Get-Module
Get-Module -ListAvailable
Get-Module -Name Pester
Import-Module

Charge un module dans la session actuelle. -Force le recharge s'il est déjà importé.

Options-Name-Force-Prefix-Function
Exemple
Import-Module Pester
Import-Module .\MeuModulo.psm1 -Force
Install-Module

Installe des modules depuis la PowerShell Gallery. -Scope CurrentUser évite les permissions admin.

Options-Name-Scope-Force-AllowClobber-RequiredVersion
Exemple
Install-Module Pester -Scope CurrentUser
Install-Module Az -Force -AllowClobber
Find-Module

Recherche des modules disponibles sur la PowerShell Gallery.

Options-Name-Tag-Filter
Exemple
Find-Module Az*
Find-Module -Tag azure

Avancé

Start-Job / Receive-Job

Exécute du code en arrière-plan. Receive-Job récupère les résultats, -Wait bloque jusqu'à la fin.

Options-ScriptBlock-Name-ArgumentList
Exemple
$j = Start-Job { Get-Process }
Receive-Job $j -Wait -AutoRemoveJob
Get-Job | Remove-Job
Start-ThreadJob

Jobs background légers basés sur des threads (plus rapides que Start-Job). Inclus en PS 7+, en 5.1 installez avec Install-Module ThreadJob.

Options-ScriptBlock-ThrottleLimit-StreamingHost
Exemple
$j = Start-ThreadJob { 1..10 | %{ $_ * 2 } }
$urls | ForEach-Object -Parallel { iwr $_ } -ThrottleLimit 5
Measure-Command

Mesure le temps d'exécution d'un bloc. Retourne un TimeSpan avec TotalSeconds, TotalMilliseconds, etc.

Options-Expression
Exemple
Measure-Command { Get-ChildItem -Recurse }
(Measure-Command { ./script.ps1 }).TotalSeconds
Invoke-Command

Exécute des commandes sur une machine distante via WinRM. Supporte les sessions persistantes avec -Session.

Options-ComputerName-ScriptBlock-Session-Credential-AsJob
Exemple
Invoke-Command -ComputerName server01 -ScriptBlock { Get-Service }
Invoke-Command -Session $s -ScriptBlock { hostname }
Start-Sleep

Met l'exécution en pause pendant N secondes ou millisecondes.

Options-Seconds-Milliseconds
Exemple
Start-Sleep -Seconds 5
Start-Sleep -Milliseconds 250

Référence

Pipeline d'objets

Contrairement à bash, le pipeline PowerShell transporte des objets avec propriétés et méthodes. Chaque cmdlet peut accéder directement à .Length, .Name, .CPU sans parser du texte.

Exemple
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
# objectos fluem entre comandos com propriedades preservadas

Get-ChildItem | Where-Object Length -gt 1MB
# Each item retains its full type — pode aceder a .Length, .Name, etc.

Get-Service | Group-Object Status | Format-Table Name, Count
Encodage des fichiers

L'encodage par défaut a changé entre les versions. Savoir lequel est actif évite les BOM et les caractères corrompus dans les scripts et logs partagés avec d'autres outils.

PowerShell 5.1
  • Le défaut varie selon le cmdlet : Out-File utilise UTF-16 LE avec BOM, Set-Content utilise Default (ANSI/Windows-1252).
  • Aucun ne produit de l'UTF-8 sans -Encoding. Passez toujours -Encoding utf8 pour les fichiers partagés avec des outils Unix.
PowerShell 7+
  • Défaut : UTF-8 sans BOM.
  • Comportement aligné avec l'écosystème. Dans les deux cas, -Encoding utf8 garantit UTF-8.
Exemple
Set-Content file.txt 'texto' -Encoding utf8
Out-File log.txt -Encoding utf8 -InputObject $data
[System.IO.File]::WriteAllText('file.txt', 'texto', [System.Text.UTF8Encoding]::new($false))
Erreurs et codes de sortie

PowerShell distingue les erreurs terminantes et non terminantes. Les cmdlets échouent silencieusement par défaut, utilisez -ErrorAction Stop pour forcer try/catch à les attraper.

-ErrorAction
  • Continuecomportement par défaut, affiche l'erreur et continue.
  • Stoptransforme en erreur terminante (capturable).
  • SilentlyContinuemasque l'erreur mais $? devient $false.
  • Ignoremasque et n'enregistre pas dans $Error.
État
  • $?$true si la dernière commande a réussi.
  • $LASTEXITCODEcode de sortie du dernier exécutable natif.
  • $Error[0]objet de la dernière erreur enregistrée.
Exemple
try {
  Get-Item .\file -ErrorAction Stop
} catch [System.IO.FileNotFoundException] {
  Write-Warning "ficheiro não encontrado"
} catch {
  Write-Error $_.Exception.Message
}

# verificar saída de processo nativo
git status
if ($LASTEXITCODE -ne 0) { throw "git falhou" }
Différences entre 5.1 et 7+

Windows PowerShell 5.1 (powershell.exe) et PowerShell 7+ (pwsh.exe) ont des syntaxes et fonctionnalités différentes. Ces détails cassent les scripts lors du passage d'une version à l'autre.

  • A && B / A || BLes opérateurs && et || n'existent qu'en PS 7+. En 5.1 utilisez : A; if ($?) { B }
  • $x ? a : bL'opérateur ternaire ?: n'existe qu'en PS 7+. En 5.1 utilisez if/else.
  • $x ?? yL'opérateur null-coalescing ?? n'existe qu'en PS 7+.
  • ConvertFrom-Json -AsHashtableConvertFrom-Json -AsHashtable n'existe qu'en PS 6+.
  • ForEach-Object -ParallelForEach-Object -Parallel n'existe qu'en PS 7+.
20 one-liners essentiels

Combinaisons fréquentes pour l'automatisation et l'administration. Chacune résout une tâche spécifique dans un seul pipeline.

  • 01.Trouve les fichiers de plus de 100 Mo récursivement.
    Get-ChildItem -Recurse -File | Where-Object Length -gt 100MB
  • 02.Liste les 10 plus gros fichiers du répertoire courant.
    Get-ChildItem | Sort-Object Length -Descending | Select-Object -First 10
  • 03.Affiche les 10 processus consommant le plus de mémoire.
    Get-Process | Sort-Object WS -Descending | Select-Object -First 10
  • 04.Affiche les 10 processus consommant le plus de CPU.
    Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
  • 05.Compte le nombre total de fichiers récursivement.
    Get-ChildItem -Recurse -File | Measure-Object | Select-Object -ExpandProperty Count
  • 06.Supprime tous les fichiers .tmp récursivement.
    Get-ChildItem -Recurse -Filter *.tmp | Remove-Item
  • 07.Recherche TODO dans tous les fichiers TypeScript.
    Get-ChildItem -Recurse -File | Where-Object Extension -in '.ts','.tsx' | Select-String 'TODO'
  • 08.Obtient l'IP publique externe de la machine actuelle.
    (Invoke-WebRequest ifconfig.me -UseBasicParsing).Content.Trim()
  • 09.Liste les ports TCP en écoute avec le processus associé.
    Get-NetTCPConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess
  • 10.Suit un log en direct en commençant par les 100 dernières lignes.
    Get-Content app.log -Wait -Tail 100
  • 11.Obtient la date et heure actuelles dans un format prêt pour des noms de fichier.
    Get-Date -Format 'yyyy-MM-dd_HH-mm-ss'
  • 12.Crée une sauvegarde zip avec la date dans le nom du fichier.
    Compress-Archive -Path .\src -DestinationPath "backup-$(Get-Date -Format yyyy-MM-dd).zip"
  • 13.Formate et affiche du JSON étendu pour une lisibilité maximale.
    Get-Content data.json | ConvertFrom-Json | ConvertTo-Json -Depth 10
  • 14.Liste toutes les variables d'environnement triées par nom.
    Get-ChildItem env: | Sort-Object Name
  • 15.Liste tous les services actuellement en cours d'exécution.
    Get-Service | Where-Object Status -eq 'Running'
  • 16.Teste si un port TCP est ouvert sur un hôte distant.
    Test-NetConnection google.com -Port 443
  • 17.Affiche l'espace libre sur chaque disque du système.
    Get-Volume | Select-Object DriveLetter, SizeRemaining, Size
  • 18.Affiche les 20 dernières commandes de l'historique de la session.
    Get-History | Select-Object -Last 20
  • 19.Affiche le chemin complet d'une commande (équivalent which).
    (Get-Command npm).Source
  • 20.Liste les fichiers modifiés au cours des 7 derniers jours.
    Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }