skip to content

Recherche

PowerShell

Administration Windows et automatisation avec PowerShell !

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 courantGet-Location ou pwd
📂 Changer de répertoireSet-Location C:\Path ou cd C:\Path
📋 Lister les fichiersGet-ChildItem ou ls
🔍 Recherche récursiveGet-ChildItem -Recurse
📄 Créer un fichierNew-Item -ItemType File fichier.txt
📁 Créer un dossierNew-Item -ItemType Directory dossier
📋 Copier un fichierCopy-Item source.txt destination.txt
➡️ Déplacer un fichierMove-Item fichier.txt C:\Temp\
🗑️ Supprimer un fichierRemove-Item fichier.txt

🔧 Services et processus

📌 Action🧠 Commande
📋 Lister les servicesGet-Service
▶️ Démarrer un serviceStart-Service -Name "ServiceName"
⏹️ Arrêter un serviceStop-Service -Name "ServiceName"
🔄 Redémarrer un serviceRestart-Service -Name "ServiceName"
📊 Statut d’un serviceGet-Service -Name "ServiceName"
🔍 Lister les processusGet-Process
❌ Arrêter un processusStop-Process -Name "notepad"
💻 Processus par CPUGet-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 WhereGet-Service | Where-Object {$_.Status -eq "Running"}
📊 Sélectionner colonnesGet-Process | Select-Object Name, CPU
📈 Trier les résultatsGet-Process | Sort-Object CPU -Descending
📋 Premier élémentGet-Process | Select-Object -First 5
🎯 Chercher par nomGet-Service | Where-Object {$_.Name -like "*win*"}
📏 Mesurer les objetsGet-Process | Measure-Object
🔄 ForEach dans pipelineGet-Process | ForEach-Object {$_.Name}

💬 Affichage et sortie

📌 Action🧠 Commande
💬 Afficher du texteWrite-Host "Bonjour"
📄 Sortie standardWrite-Output "Résultat"
⚠️ AvertissementWrite-Warning "Attention"
❌ ErreurWrite-Error "Erreur"
📝 Vers un fichierGet-Process | Out-File processus.txt
📋 Vers le clipboardGet-Process | Set-Clipboard
🎨 CouleursWrite-Host "Texte" -ForegroundColor Red

🛠️ Gestion du système

📌 Action🧠 Commande
💻 Infos systèmeGet-ComputerInfo
🧠 Mémoire disponibleGet-CimInstance Win32_OperatingSystem
💿 Espace disqueGet-CimInstance Win32_LogicalDisk
👥 Utilisateurs locauxGet-LocalUser
🔐 Groupes locauxGet-LocalGroup
🌐 Configuration réseauGet-NetAdapter
📡 Adresses IPGet-NetIPAddress
🔄 Redémarrer l’ordinateurRestart-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 commandeGet-Help Get-Process -Examples
🔍 Chercher une commandeGet-Command *service*
📋 Voir les propriétésGet-Service | Get-Member
🚫 Erreur d’exécutionSet-ExecutionPolicy RemoteSigned
📜 Historique commandesGet-History
🔧 Version PowerShell$PSVersionTable