Comprenez les origines de PowerShell
Dans ce chapitre, je vais vous parler d’un temps que les moins de vingt ans ne peuvent pas connaître.
Tiens, c’est un cours spécial blind test ?
Non, bien sûr. Je ne suis pas là pour vous pousser la chansonnette façon Aznavour, mais pour vous présenter l’histoire de PowerShell.
Dans les années 1980, le marché de l’informatique personnelle était déjà dominé par Microsoft et son système d’exploitation MS-DOS.
MS-DOS était le système d’exploitation, ou OS (pour Operating System), qui était installé par défaut sur les PC. Ce MS-DOS était piloté par des commandes, entrées par l’utilisateur.
On dirait l’invite de commandes sous Windows, là !
Eh oui ! L’invite de commandes Windows, ou cmd.exe, est en fait une émulation de MS-DOS.
À l’époque de MS-DOS, l’invite de commandes était command.com.
MS-DOS avait déjà son langage de script : le langage Batch.
Depuis la fin de l’utilisation de MS-DOS comme socle à Windows, c'est-à-dire depuis l’utilisation du noyau NT à partir de Windows XP en 2001, command.com a été remplacé par cmd.exe.
D’accord, et PowerShell dans tout ça ?
Nous y venons ! Dans une optique d’évolution, Microsoft a décidé de créer un autre langage de script, qui remplacerait le Batch : MSH, pour Microsoft command SHell, qui deviendra par la suite Microsoft PowerShell.
PowerShell est directement inclus dans Windows dès la première version de Windows 7.
Aujourd’hui, la version intégrée de PowerShell dans Windows (Server 2022 ou Windows 11) est la version 5.1. Mais il existe aussi une autre version, installable, qui est PowerShell Core. PS Core est actuellement en version 7.2 LTS. C'est-à-dire que c’est une version “Long Time Support”, ou support à long terme.
Voici quelques différences entre PowerShell 5.1 et PowerShell 7.2 :
PowerShell 5.1 | PowerShell 7.2 |
Basé sur le framework .NET 4.5 | Basé sur le framework .NET 6.0 |
| Certaines cmdlets supprimées pour raisons de compatibilité |
Nom de l’exécutable : powershell.exe | Nom de l’exécutable : pwsh.exe |
Les exécutions du Foreach-Object sont séquentielles | Possibilité d’exécutions parallèles du Foreach-Object |
De nombreuses différences supplémentaires sont accessibles sur le site de Microsoft.
Prenez en main votre terminal PowerShell
Allez, trêve de nostalgie et d’histoire. Je vous propose de commencer à prendre en main PowerShell !
Histoire de bien vous montrer la différence, je vous propose de démarrer en premier lieu l’invite de commandes Windows : cmd.exe.
La fenêtre de l’invite de commandes de Windows va s’ouvrir. Parfait !
Si vous regardez bien cette nouvelle fenêtre, vous pouvez voir que votre prompt est C:\Users\[votre_nom_utilisateur]>.
Le prompt désigne le message ou les caractères qui indiquent que l’invite de commandes est prête à recevoir ses commandes au clavier. Il peut être personnalisé.
Vous voyez ? En entrant prompt $D - $T : $P$G
, le prompt nous affiche désormais en plus la date et l’heure.
Vous pouvez maintenant tester une première cmdlet : Get-ChildItem.
Mais ça ne fonctionne pas, votre commande !
Et c’est normal. Vous êtes encore dans l’invite de commandes de Windows. Pour pouvoir utiliser PowerShell, il vous faut maintenant entrer dans l’invite de commandes de PowerShell, en entrant : powershell.exe.
Si vous regardez votre prompt, il a changé : il est passé de “C:\Users\[votre_nom_utilisateur]>” à “ PS C:\Users\[votre_nom_utilisateur]>”. Ces deux lettres vous montrent que désormais, vos instructions seront interprétées par l’interpréteur PowerShell et non plus cmd.exe.
Vous pouvez maintenant retester la cmdlets Get-ChildItem, et vous verrez son exécution.
Félicitations ! Vous êtes prêt à utiliser PowerShell. Retrouvez toute la méthodologie pour en arriver là en image.
En résumé
Le DOS avec le langage Batch est l’ancêtre de PowerShell.
On démarre l’invite de commandes PowerShell en exécutant “powershell.exe”.
La documentation officielle de PowerShell est accessible sur le site de Microsoft.
PowerShell existe en version 5.1 ou en version 7.2 avec PowerShell Core, mais nous allons rester sur la 5.1 tout au long du cours.
Maintenant que vous avez pu faire connaissance avec PowerShell, vous allez pouvoir commencer à l’utiliser via l’utilisation de cmdlets. Et on voit ça ensemble dans le prochain chapitre !