Windows Server 1.1 : Powershell partie 1
PowerShell est l'outil d'administration et d'automatisation Microsoft pour gérer serveurs et postes de travail (Windows 10, Windows Server). La première version 1.0 est sortie le 14 novembre 2006. C'est l'héritier de MS-DOS, mais bâti sur le framework .NET : c'est un langage objet, à la fois shell en ligne de commande et langage de scripting pensé pour l'administration système. Il dispose aussi d'une capacité de gestion à distance qui permet d'exécuter des commandes sur d'autres machines comme si on était localement.
L'environnement PowerShell ISE est composé de trois sections : la console, le module de commandes et le fichier de script. Les scripts utilisent l'extension .ps1. PowerShell est natif sous Windows en 32 et 64 bits. Les commandes sont appelées cmdlets et suivent une syntaxe Verbe-Nom standardisée. Microsoft maintient une liste de verbes approuvés : Get, Set, New, Remove, etc. Pour gagner du temps, on utilise la tabulation pour l'auto-complétion.
Modules, alias et politique d'exécution
- Modules : étendent PowerShell.
Get-Module -ListAvailable,Find-Module,Install-Module ActiveDirectory - Variable d'environnement modules :
$env:PSModulePath - Alias : noms alternatifs pour les cmdlets (
dir=Get-ChildItem,wget= alias d'une cmdlet).Get-Aliasliste tous les alias actifs. - Execution policy :
Get-ExecutionPolicypour la lire,Set-ExecutionPolicy RemoteSignedpour la modifier.Restrictedest la plus stricte,Bypassla plus permissive.
Quelques commandes de base illustrent la puissance face à l'ancien cmd.exe. ping <hôte> teste la connectivité réseau (par défaut 4 paquets, ping -t en continu). ipconfig affiche la configuration IP, ipconfig /all donne la version complète, ipconfig /? liste la syntaxe disponible. Contrairement à cmd, où chaque commande a sa propre syntaxe unique à mémoriser, PowerShell impose une grammaire homogène et un système d'aide unifié, ce qui rend l'apprentissage beaucoup plus rapide pour l'administration moderne.
En résumé
PowerShell est un outil d'administration et d'automatisation pour gérer les serveurs et postes de travail Windows, héritier du MS-DOS basé sur le Framework .NET de Microsoft. Cette première partie couvre les fondamentaux : historique (version 1.0 lancée le 14 novembre 2006), environnement ISE (Integrated Scripting Environment), modules, alias et politiques d'exécution. Vous découvrirez les commandes basiques essentielles et la gestion à distance qui permet d'exécuter des commandes sur d'autres systèmes.
Points clés
- PowerShell est un langage objet .NET à la fois interface de ligne de commande et langage de scripting pour l'administration Windows, contrairement à CMD limité à l'exécution de commandes
- La console PowerShell native (simple exécution) et PowerShell ISE (création/modification de scripts .ps1) sont les deux outils principaux d'administration
- Les modules ajoutent des fonctionnalités supplémentaires : modules officiels Microsoft ou développés par la communauté powershell et d'autres éditeurs
- Les commandes PowerShell utilisent le format Verb-Noun (Get-Command, Get-Process) avec autocomplétion par touche Tab, tandis que les alias créent des noms alternatifs pour les commandes existantes
- Les politiques d'exécution (Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass) contrôlent l'exécution des scripts pour se prémunir contre les scripts non fiables
- PowerShell offre une capacité de gestion à distance permettant d'exécuter des commandes sur d'autres systèmes comme si elles étaient exécutées localement
Questions fréquentes
Quelle est la différence entre la console PowerShell et PowerShell ISE ?
La console PowerShell est un simple outil où vous tapez directement les commandes. PowerShell ISE (Integrated Scripting Environment) est composée de trois sections (console, module de commande et fichier de scripting) permettant de créer, modifier et exécuter des scripts PowerShell (.ps1).
Pourquoi utiliser PowerShell au lieu de l'invite de commande (CMD) ?
PowerShell est un langage objet complet basé sur .NET avec composants de scripting unifiés, tandis que l'invite de commande ne sert qu'à exécuter des commandes simples sans capacités avancées de scripting ou d'administration système.
Comment gérer les politiques d'exécution PowerShell ?
Vérifiez la politique active avec Get-ExecutionPolicy et modifiez-la avec Set-ExecutionPolicy (ex: Set-ExecutionPolicy RemoteSigned). Les options incluent Restricted (aucun script), AllSigned (scripts signés uniquement), RemoteSigned, Unrestricted et Bypass.