Ceci est une ancienne révision du document !
Table des matières
PowerShell
PowerShell : Introduction et Guide Avancé
1. Qu'est-ce que PowerShell ?
PowerShell est un langage de script et une interface en ligne de commande développé par Microsoft pour l'automatisation des tâches et la gestion des configurations système sur les plates-formes Windows. Il offre un ensemble de commandes appelées 'cmdlets' (command lets) qui permettent d'effectuer diverses opérations sur le système.
2. Installation de PowerShell :
- Vérification de la version de PowerShell : $PSVersionTable.PSVersion - Installation sur différentes versions de Windows : # Installation de PowerShell 7 sur Windows 10
iex '& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI'
3. Lancement de PowerShell :
- Interface en ligne de commande : # Lancer PowerShell depuis l'invite de commande
powershell
- Interface graphique (PowerShell ISE) :
# Lancer PowerShell ISE
powershell_ise
4. Les bases de PowerShell :
- Cmdlets : # Afficher la liste des processus en cours d'exécution
Get-Process
- Variables :
$nom = 'John' Write-Host 'Bonjour, $nom !'
5. Exploration du système de fichiers :
- Navigation entre les répertoires : # Accéder au répertoire C:\Users
cd C:\Users
- Création de fichiers : # Créer un nouveau fichier texte
New-Item -Path .\example.txt -ItemType File
6. Gestion des processus et des services :
- Recherche des processus en cours d'exécution : # Rechercher les processus notepad en cours d'exécution
Get-Process -Name notepad
- Interrogation des services : # Afficher la liste des services en cours
Get-Service
7. Gestion des utilisateurs et des groupes :
- Création d'un nouvel utilisateur : # Créer un nouvel utilisateur
New-LocalUser -Name 'utilisateur1' -Password (ConvertTo-SecureString 'P@ssw0rd' -AsPlainText -Force)
- Ajout d'un utilisateur à un groupe :
# Ajouter un utilisateur à un groupe
Add-LocalGroupMember -Group 'Administrateurs' -Member 'utilisateur1'
8. Automatisation des tâches :
- Scripting : # Exemple de script : sauvegarde des fichiers
$source = 'C:\Source' $destination = 'D:\Backup' Copy-Item $source -Destination $destination -Recurse
9. Gestion des fichiers et dossiers avancée :
- Renommage de fichiers en masse : # Renommer tous les fichiers avec l'extension .txt en ajoutant un préfixe 'backup_'
Get-ChildItem -Path C:\Path\To\Folder -Filter *.txt | Rename-Item -NewName { 'backup_' +$_.Name }
- Suppression de fichiers/dossiers : # Supprimer un fichier
Remove-Item -Path C:\Path\To\File.txt
# Supprimer un dossier et son contenu récursivement
Remove-Item -Path C:\Path\To\Folder -Recurse
10. Gestion des registres Windows :
- Lecture de clés de registre : # Lire la valeur d'une clé de registre
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion' -Name 'ProgramFilesDir'
- Modification de clés de registre :
# Modifier la valeur d'une clé de registre
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion' -Name 'ProgramFilesDir' -Value 'C:\Program Files (x86)'
11. Interactions réseau :
- Test de connectivité :
# Vérifier la connectivité avec un hôte distant
Test-Connection -ComputerName 'example.com' -Count 4
- Récupération d'informations sur les interfaces réseau :
# Obtenir la liste des interfaces réseau
Get-NetAdapter
12. Gestion des données :
- Manipulation de fichiers CSV :
# Importer un fichier CSV
$data = Import-Csv -Path 'C:\Path\To\Data.csv'
# Afficher les données
$data
- Manipulation de fichiers JSON :
# Importer un fichier JSON
$data = Get-Content -Path 'C:\Path\To\Data.json' | ConvertFrom-Json
# Afficher les données
$data
Annexe A : Glossaire PowerShell
- Variable : Un conteneur pour stocker des valeurs ou des objets dans PowerShell.
- Script : Un fichier texte contenant une séquence de commandes PowerShell qui peuvent être exécutées ensemble.
- Interface en ligne de commande (CLI) : Une interface utilisateur qui permet à l'utilisateur de communiquer avec le système en saisissant des commandes textuelles.
- Interface graphique utilisateur (GUI) : Une interface utilisateur qui permet à l'utilisateur d'interagir avec le système à l'aide d'éléments visuels tels que des boutons, des menus et des fenêtres.
- Automatisation : Le processus d'exécution de tâches répétitives ou complexes de manière programmée plutôt que manuelle.
- Fichier batch : Un fichier texte contenant une séquence de commandes qui peuvent être exécutées par le shell de commandes Windows (cmd.exe).
- Registre Windows : Une base de données hiérarchique utilisée par le système d'exploitation Windows pour stocker des informations de configuration, telles que les paramètres système et les informations sur les logiciels installés.
- Cmdlet : Abréviation de 'command let', il s'agit des commandes de base de PowerShell qui effectuent des actions sur le système
Annexe B : Ressources supplémentaires
- Sites Web :
- Site officiel de PowerShell : [https://docs.microsoft.com/en-us/powershell/](https://docs.microsoft.com/en-us/powershell/)
- PowerShell Gallery : [https://www.powershellgallery.com/](https://www.powershellgallery.com/)
- Livres :
- 'Learn PowerShell in a Month of Lunches' par Don Jones et Jeffrey Hicks
- 'Windows PowerShell Cookbook' par Lee Holmes
- Communauté :
- PowerShell Subreddit :
[https://www.reddit.com/r/PowerShell/](https://www.reddit.com/r/PowerShell/)
- PowerShell.org : [https://powershell.org/](https://powershell.org/
Listes des commandes powershell
Philosophie générale des commandes PowerShell
PowerShell repose sur des cmdlets, des commandes natives conçues pour être cohérentes, lisibles et prévisibles.
Une cmdlet :
- effectue une action précise
- renvoie des objets
- s’intègre naturellement dans un pipeline
Tu ne travailles pas avec du texte brut, mais avec des entités structurées.
Syntaxe générale d’une cmdlet
Toutes les cmdlets suivent la convention :
Verbe-Nom
Exemples :
- Get-Process : récupérer des processus
- Get-Service : récupérer des services
- Set-Date : modier un paramètre système
- Remove-Item : supprimer un élément
Le verbe indique l’action, le nom indique la cible. Cette régularité te permet de deviner des commandes même sans les connaître.
Les commandes renvoient des objets
Contrairement à CMD, une commande PowerShell ne renvoie pas du texte, mais des objets.
Get-Member permet d'inspecter ce qu’une commande renvoie :
1 Get-Process | Get-Member
Tu découvres :
- les propriétés (Name, Id, CPU, etc.)
- les méthodes (actions possibles)
C’est cette structure qui rend PowerShell puissant et able pour l’administration système.
Trouver de l’aide : Get-Help
PowerShell intègre sa propre documentation.
Afficher l’aide d’une commande :
1 Get-Help Get-Process
Afficher uniquement des exemples :
1 Get-Help Get-Process -Examples
Consulter la documentation complète :
1 Get-Help Get-Process -Full
👉 En pratique, Get-Help est l’outil le plus important à maîtriser pour devenir autonome.
Rechercher des commandes : Get-Command
Tu n’as pas besoin de connaître le nom exact d’une cmdlet.
Exemple :
1 Get-Command *service*
PowerShell te propose toutes les commandes liées aux services. C’est la méthode recommandée pour explorer un nouveau domaine (réseau, système, fichiers…).
Alias : raccourcis utiles (mais à utiliser avec prudence)
PowerShell propose des alias pour aller plus vite :
Alias Cmdlet réelle
dir Get-ChildItem
Alias Cmdlet réelle
- ls Get-ChildItem
- cat Get-Content
- ps Get-Process
Les alias sont pratiques en console, mais à éviter dans les scripts, an de garantir lisibilité et portabilité.
Cmdlets fondamentales à connaître
Voici une sélection de cmdlets essentielles, classées par usage.
Fichiers et dossiers
| Cmdlet | Rôle |
|---|---|
| Get-ChildItem | Lister fichiers et dossiers |
| Set-Location | Changer de dossier |
| New-Item | Créer chier ou dossier |
| Copy-Item | Copier |
| Move-Item | Déplacer |
| Remove-Item | Supprimer |
Système et administration Cmdlet Rôle Get-Process Lister les processus Stop-Process Arrêter un processus Get-Service Lister les services Start-Service Démarrer un service Stop-Service Arrêter un service Restart-Computer Redémarrer la machine Réseau Cmdlet Rôle Test-Connection Tester la connectivité (ping) Resolve-DnsName Résoudre un nom DNS Get-NetAdapter Acher les interfaces réseau Lecture et export Cmdlet Rôle Get-Content Lire un chier Set-Content Écrire dans un chier Export-Csv Exporter vers CSV ConvertTo-Json Convertir en JSON Conclusion Dans ce chapitre, tu as compris :4 | 4https:v2.ttrinfo.be© 2025 Mr. Lambrechts comment sont construites les cmdlets PowerShell que les commandes renvoient des objets comment découvrir et documenter une commande quelles sont les cmdlets essentielles pour débuter Ces bases sont indispensables avant d’aborder le pipeline avancé, le ltrage, le tri et l’automatisation. 👉 Le ltrage et le tri des objets seront abordés dans un chapitre spécique, une fois ces fondations maîtrisées.
