PowerShell est un langage de script et une interface en ligne de commande développés par Microsoft, principalement utilisés pour l’automatisation des tâches d’administration système et la gestion de configurations. Il permet d’exécuter des commandes, de manipuler des objets et de créer des scripts complexes pour gérer des environnements Windows et d’autres systèmes.
Exemples de petits scripts avec PowerShell le plus souvent réalisés pour Windows
# représente le commentaire
Script qui ouvre la fenêtre de l’invite de commande sous Windows :
# Obtenir la liste des processus en cours d'exécution
$processes = Get-Process
# Vérifier si le processus est dans la liste
$processusRunning = $processes | Where-Object { $_.ProcessName -eq 'cmd' }
# Vérifier si le processus est déjà lancé
if ($processusRunning -ne $null) {
Write-Host "L'invite de commande est déjà ouverte"
} else {
Start-Process cmd
Write-Host "L'invite est désormais lancée "
}
Commandes PowerShell Essentielles
Get-Help
Utilisée pour obtenir de l’aide sur les autres commandes PowerShell. Elle fournit des informations détaillées et des exemples sur l’utilisation des cmdlets.
Exemple : Get-Help Get-Process
Get-Command
Permet de lister toutes les commandes disponibles dans PowerShell. Utile pour découvrir de nouvelles commandes ou vérifier la syntaxe d’une commande existante.
Exemple : Get-Command -Name *service*
liste toutes les commandes contenant le mot « service »
Get-Member
Affiche les propriétés et méthodes des objets. Elle est souvent utilisée pour explorer les objets retournés par d’autres cmdlets
Exemple : Get-Process | Get-Member
Affiche les membres des objets de processus.
Get-Process
Fournit des informations sur les processus en cours d’exécution sur la machine. Pratique pour la gestion des processus et le dépannage.
Exemple : Get-Process
Affiche tous les processus en cours.
Get-Service
Liste les services Windows et leur état actuel. Cela permet de gérer les services directement depuis PowerShell
Exemple : Get-Service | Where-Object {$_.Status -eq "Running"}
Affiche uniquement les services en cours d’exécution.
Get-Content
Lit le contenu des fichiers texte. Utile pour manipuler des fichiers de configuration ou des logs
Exemple : Get-Content -Path .\example.txt Lit le contenu du fichier example.txt.
Set-Location
Change le répertoire courant dans PowerShell, similaire à la commande cd
dans d’autres shells
Exemple : Set-Location -Path "C:\Users"
Change le répertoire courant vers C:\Users
Out-File
Redirige la sortie d’une commande vers un fichier. Cela permet de sauvegarder les résultats pour une analyse ultérieure ou des rapports.
Exemple : Get-Process | Out-File -FilePath .\processes.txt
Enregistre la liste des processus dans le fichier processes.txt
Export-Csv
Exporte les objets PowerShell vers un fichier CSV, facilitant l’analyse des données dans des outils comme Excel.
Exemple : Get-Process | Select-Object -Property Id, ProcessName | Export-Csv -Path .\processes.csv
Exporte les ID et noms des processus vers un fichier CSV.
Test-Connection
Similaire à la commande ping
, elle teste la connectivité réseau avec une machine distante, ce qui est utile pour le dépannage réseau.
Test-Connection -ComputerName www.google.com
Vérifie la connectivité avec le site www.google.com
.