Histoire de PowerShell
Introduction
Avant de commencer votre apprentissage de PowerShell, il peut être intéressant d’apprendre ce qu’est PowerShell :
-
Comment est-il né ?
-
Qui est son créateur ?
-
Pourquoi a-t-il été créé ?
-
Quelle est son évolution ?
-
Quel est l’historique de ses versions ?
Qu’est-ce qu’un shell ?
Un shell (coquille, en français) correspond à une interface en ligne de commande, également nommée CLI (Command-Line Interface). Vous retrouverez souvent ce terme de CLI lorsque vous approfondirez vos connaissances avec PowerShell.
Un shell peut également être utilisé en mode graphique, comme Windows qui peut être considéré comme un shell graphique.
DOS, MS-DOS, CMD
Avant de commencer, il est intéressant de parler des autres langages natifs à Windows, certes toujours existants et utilisés, mais majoritairement remplacés par PowerShell.
Commençons donc tout d’abord par le langage DOS ou MS-DOS (Microsoft Disk Operating System).
MS-DOS était un système d’exploitation développé par Microsoft qui a vu le jour en 1981, d’abord destiné à l’IBM PC puis aux autres ordinateurs. MS-DOS a été le système majoritairement utilisé des années 1980 aux années 1990. Il s’agissait d’un système d’exploitation où tout se faisait en ligne de commande. Ce système a été remplacé en 1995 par Windows 95 et le début du système d’exploitation basé sur une interface graphique telle que nous la connaissons. MS-DOS existe toujours sur nos postes (sous Windows 11) mais n’est maintenant plus qu’une invite de commandes, accessible en saisissant cmd.
VBScript (VBS)
VBScript ou VBS (Microsoft Visual Basic Scripting Edition) est un langage de script présent sous Windows. Il permet de créer des scripts visant à gérer votre système Windows, à automatiser des actions ou à créer des interfaces graphiques en utilisant HTA. Ce langage est toujours utilisé sur les systèmes d’exploitation récents de Windows (Windows 10 ou 11).
Monad (MSH) : prémices de PowerShell
1. Origine du nom de code Monad
Le nom de code Monad provient du livre Monadologie écrit par le philosophe Gottfried Wilhelm Leibniz. Dans ce livre, Leibniz affirme que la réalité est composée d’éléments fondamentaux appelés monades, qui sont intégrés dans une harmonie préétablie.
Windows PowerShell est composé d’une série de tâches exécutées par une série de composants. Dans le cas présent, ces composants sont appelés commandlets (abrégés en cmdlets dans la console de commande). Nous rencontrons aussi l’anglicisme commandelettes.
MSH (Microsoft Command Shell), dont le nom de code est Monad, est ce que l’on peut appeler l’origine de PowerShell, son premier nom.
Il s’agit d’un shell basé sur le framework .NET dont le but est de permettre aux administrateurs et autres de gérer facilement les systèmes Windows.
En octobre 2004, Monad a été présenté publiquement pour la première fois au public lors de la Profressional Developers Conference à Los Angeles. Jeffrey Snover a également présenté Monad sur la chaîne Channel9, chaîne Microsoft dédiée aux développeurs Microsoft. Monad est supporté sur les systèmes suivants :...
De PowerShell 1.0 à PowerShell 5
PowerShell 1.0 a vu le jour en novembre 2006 pour les systèmes suivants :
-
Windows XP SP2
-
Windows Server 2003 SP1
-
Windows Vista
-
également un composant optionnel de Windows Server 2008
PowerShell 2.0 a vu le jour en juillet 2009, avec l’arrivée de Windows 7. Cette version est supportée par les systèmes suivants :
-
Windows 7
-
Windows Server 2008 R2
-
Windows Vista SP1
Cette version inclut de nombreuses nouvelles cmdlets (240 cmdlets) et offre donc de multiples possibilités.
PowerShell devient dès lors un puissant atout pour l’administrateur système et toute personne souhaitant gérer les infrastructures Microsoft. PowerShell 2 inclut les nouveautés suivantes :
-
Gestion à distance au travers de PowerShell via WinRM
-
Nouvel éditeur graphique pour les scripts nommé PowerShell ISE
-
Fonctions avancées
-
Aide intégrée pour un meilleur débogage
-
Modules PowerShell
-
Network File Transfer
PowerShell 3.0 est apparu en octobre 2012 et est supporté par les systèmes suivants :
-
Windows Server 2012
-
Windows 7 SP1
-
Windows 8
-
Windows Server 2008 SP1
-
Windows Server 2008 R2 SP1
Cette version inclut les nouveautés suivantes :
-
Chargement automatique des modules
-
Amélioration de l’ISE avec par exemple de l’IntelliSense, add-ons
-
Intégration de cmdlets CIM
-
Accès...
La suite de PowerShell
1. PowerShell 6.0 à 6.2
Après PowerShell 5.1, la version 6 marque un tournant pour ce langage. Apparu en janvier 2018, PowerShell 6 s’appuie maintenant sur une version .NET Core 2.0 et c’est dorénavant une version multiplateforme disponible également pour Linux et macOS.
De plus, un des gros tournants est que PowerShell est maintenant un projet open source.
PowerShell 5.1 est tout de même encore majoritairement utilisé en entreprise. En ouvrant une console PowerShell en 5.1, nous pouvons d’ailleurs remarquer que Microsoft invite les utilisateurs à tester la version PowerShell Core 6.
En septembre 2018, PowerShell offre sa version 6.1, basée sur du .NET Core 2.1, puis en mars 2019 la version 6.2.
2. PowerShell 7
En mars 2020 apparaît la version 7.0 de PowerShell basée sur du .NET Core 3.1
En novembre 2021, ce sera la version 7.1, puis en janvier 2022 la version 7.3 (dernière au moment de l’écriture de cet ouvrage).
PowerShell 7 reste sur la même longueur d’onde que la version 6 en étant un projet open source et multiplateforme (Windows, Linux, macOS). Les grandes nouveautés de ces versions sont :
-
possibilité d’exécuter des boucles en parallèle (ForEach-Object -Parallel),
-
nouveaux opérateurs,
-
notifications automatiques en cas de nouvelles versions,
-
prise en charge...