PowerShell est un shell et langage de script orienté objets pour l’administration système et l’automatisation.
📁 Navigation et fichiers
📌 Action | 🧠 Commande |
---|
📍 Répertoire courant | Get-Location ou pwd |
📂 Changer de répertoire | Set-Location C:\Path ou cd C:\Path |
📋 Lister les fichiers | Get-ChildItem ou ls |
🔍 Recherche récursive | Get-ChildItem -Recurse |
📄 Créer un fichier | New-Item -ItemType File fichier.txt |
📁 Créer un dossier | New-Item -ItemType Directory dossier |
📋 Copier un fichier | Copy-Item source.txt destination.txt |
➡️ Déplacer un fichier | Move-Item fichier.txt C:\Temp\ |
🗑️ Supprimer un fichier | Remove-Item fichier.txt |
🔧 Services et processus
📌 Action | 🧠 Commande |
---|
📋 Lister les services | Get-Service |
▶️ Démarrer un service | Start-Service -Name "ServiceName" |
⏹️ Arrêter un service | Stop-Service -Name "ServiceName" |
🔄 Redémarrer un service | Restart-Service -Name "ServiceName" |
📊 Statut d’un service | Get-Service -Name "ServiceName" |
🔍 Lister les processus | Get-Process |
❌ Arrêter un processus | Stop-Process -Name "notepad" |
💻 Processus par CPU | Get-Process | Sort-Object CPU -Descending |
💾 Variables et types
📌 Action | 🧠 Syntaxe |
---|
📝 Variable simple | $nom = "Jean" |
🔢 Variable typée | [int]$age = 30 |
📚 Tableau | $liste = @("item1", "item2", "item3") |
🗂️ Hash table | $hash = @{Nom="Jean"; Age=30} |
🔤 String | [string]$texte = "Hello" |
✅ Boolean | [bool]$vrai = $true |
📅 Date | $date = Get-Date |
🌐 Variable d’environnement | $env:COMPUTERNAME |
🔍 Filtrage et pipeline
📌 Action | 🧠 Commande |
---|
🔎 Filtrer avec Where | Get-Service | Where-Object {$_.Status -eq "Running"} |
📊 Sélectionner colonnes | Get-Process | Select-Object Name, CPU |
📈 Trier les résultats | Get-Process | Sort-Object CPU -Descending |
📋 Premier élément | Get-Process | Select-Object -First 5 |
🎯 Chercher par nom | Get-Service | Where-Object {$_.Name -like "*win*"} |
📏 Mesurer les objets | Get-Process | Measure-Object |
🔄 ForEach dans pipeline | Get-Process | ForEach-Object {$_.Name} |
💬 Affichage et sortie
📌 Action | 🧠 Commande |
---|
💬 Afficher du texte | Write-Host "Bonjour" |
📄 Sortie standard | Write-Output "Résultat" |
⚠️ Avertissement | Write-Warning "Attention" |
❌ Erreur | Write-Error "Erreur" |
📝 Vers un fichier | Get-Process | Out-File processus.txt |
📋 Vers le clipboard | Get-Process | Set-Clipboard |
🎨 Couleurs | Write-Host "Texte" -ForegroundColor Red |
🛠️ Gestion du système
📌 Action | 🧠 Commande |
---|
💻 Infos système | Get-ComputerInfo |
🧠 Mémoire disponible | Get-CimInstance Win32_OperatingSystem |
💿 Espace disque | Get-CimInstance Win32_LogicalDisk |
👥 Utilisateurs locaux | Get-LocalUser |
🔐 Groupes locaux | Get-LocalGroup |
🌐 Configuration réseau | Get-NetAdapter |
📡 Adresses IP | Get-NetIPAddress |
🔄 Redémarrer l’ordinateur | Restart-Computer -Force |
🔄 Structures de contrôle
Conditions
# If/Else basique
if ($age -ge 18) {
Write-Host "Majeur"
} else {
Write-Host "Mineur"
}
# Switch simple
switch ($jour) {
"Lundi" { "Début de semaine" }
"Vendredi" { "Weekend proche" }
default { "Jour normal" }
}
Boucles
# ForEach simple
$services = Get-Service
foreach ($service in $services) {
Write-Host $service.Name
}
# For classique
for ($i = 1; $i -le 5; $i++) {
Write-Host "Compteur: $i"
}
📜 Fonctions et scripts
Fonction basique
function Get-SystemInfo {
param(
[string]$ComputerName = $env:COMPUTERNAME
)
Write-Host "Informations pour: $ComputerName"
Get-ComputerInfo | Select-Object TotalPhysicalMemory, CsProcessors
}
# Utilisation
Get-SystemInfo -ComputerName "MonPC"
Script avec paramètres
param(
[Parameter(Mandatory=$true)]
[string]$ServiceName,
[ValidateSet("Start", "Stop", "Restart")]
[string]$Action = "Start"
)
switch ($Action) {
"Start" { Start-Service -Name $ServiceName }
"Stop" { Stop-Service -Name $ServiceName }
"Restart" { Restart-Service -Name $ServiceName }
}
Write-Host "Action $Action effectuée sur $ServiceName"
🛠️ Dépannage et aide
🆘 Problème | 🧠 Solution |
---|
❓ Aide sur une commande | Get-Help Get-Process -Examples |
🔍 Chercher une commande | Get-Command *service* |
📋 Voir les propriétés | Get-Service | Get-Member |
🚫 Erreur d’exécution | Set-ExecutionPolicy RemoteSigned |
📜 Historique commandes | Get-History |
🔧 Version PowerShell | $PSVersionTable |