PowerShell est l'outil idéal pour les débutants en scripting sur Windows. À la fois interface en ligne de commande et langage de script puissant, il permet d'automatiser l'administration de votre système via des commandes standardisées. Disponible nativement sur tout Windows moderne, PowerShell s'installe aussi sur macOS et Linux pour une polyvalence maximale.
Deux modes d'utilisation s'offrent à vous : la console de base pour exécuter des commandes ou des scripts existants, et l'Integrated Scripting Environment (ISE) qui intègre un éditeur et un terminal. L'ISE liste toutes les commandes disponibles, facilitant la construction et l'insertion de syntaxes. Pour des projets avancés, optez pour Visual Studio Code de Microsoft, avec support Git et multi-langages.

PowerShell repose entièrement sur des cmdlets (applets de commande), uniformes en CLI comme en scripting. Apprenez-les pour enchaîner des opérations et créer vos premiers scripts.
Tous les cmdlets suivent le format Verbe-Nom, avec des verbes courants comme Get, Set ou New.
Get-Command liste toutes les cmdlets disponibles.
Chaque cmdlet accepte des paramètres pour affiner les résultats. Pour l'aide détaillée : Get-Help.

Syntaxe basique :
Get-Help Get-CommandAjoutez -Full pour les détails complets, ou -Examples pour les exemples annotés :
Get-Help Get-Command -Examples
Pour une fenêtre dédiée : -ShowWindow.
Get-Help Get-Command -ShowWindowGet-Member révèle propriétés et méthodes des objets retournés, idéal pour cibler via -Property.
Get-ChildItem (alias dir ou ls) liste le contenu d'un dossier :
Get-ChildItem E:\ou explicitement :
Get-ChildItem -Path E:\Colonnes : LastWriteTime, Length (taille), Name, Mode (attributs : ReadOnly, Hidden, Directory, Archive, etc.).
Pour les sous-dossiers : -Recurse.
Get-ChildItem -Path E:\ -Recurse
Filtrez avec -File, -Hidden, -ReadOnly, ou wildcards :
Get-ChildItem -Path E:\*.doc -RecurseSupprimer : Remove-Item.
Remove-Item -Path E:\OldFile.txt -Confirm:$false -ForceDéplacer : Move-Item.
Move-Item -Path E:\* -Destination C:\FlashDriveArchiveCopier : Copy-Item avec la même syntaxe.
Get-Process liste les processus (plus rapide que le Gestionnaire des tâches).
Get-Process | Get-Member
Exemple filtré et trié :
Get-Process | Select-Object Product, NPM, CPU, Name, Id | Sort-Object CPU -DescendingArrêter : Stop-Process.
Stop-Process -Id 45960Démarrer : Start-Process.
Start-Process -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList "--incognito"
Pour services : Get-Service, Start-Service, Stop-Service.
Sort-Object trie :
(Get-Random), (Get-Random), (Get-Random) | Sort-Object -Descending
Select-Object sélectionne propriétés :
Get-Service | Select-Object DisplayName, StatusWhere-Object filtre (opérateurs : -eq, -ne, -lt, -gt, -ge, -le, -like) :
Get-Service | Where-Object {$_.Status -eq "Running"}
Format-List pour vue détaillée, Format-Table pour tableaux fixes.

Enregistrez vos commandes dans un fichier .ps1. Consultez la documentation officielle Microsoft pour approfondir.
Que comptez-vous automatiser en premier avec PowerShell ? Partagez en commentaires !
[]