# Programmation PowerShell/Introduction

PowerShell
* Introduction
* Démarrer avec PowerShell
* Navigation
* Formatage de l'affichage
* Les scripts
* Variables, constantes et alias
* Tableaux
* Redirections
* Conditions
* Boucles
* Switch
* Les objets personnalisés
* Fonctions et filtres
* Gestion des services et des processus
* Accès distants
Pour commencer, PowerShell est un langage de script et un shell permettant de traiter des commandes.
PowerShell (ci-après PS) a la particularité d'être un shell objet. Quand vous utilisez un terminal classique tel que cmd.exe ou bash, vous exécutez des commandes et du texte est renvoyé. PS utilise des technologies modernes et renvoie des objets qui seront affichés sous forme de texte.
Vous vous demandez certainement en quoi cela peut vous être utile d'apprendre ce langage, dans la mesure où vous pouvez potentiellement très bien vous en passer. PowerShell est destiné à ceux qui veulent aller plus loin dans l'administration et l'automatisation de leur ordinateur, qu'il s'agisse d'une machine cliente ou d'un serveur.
Tout le monde s'y est mis, il existe des modules (des extensions) qui vous permettront d'utiliser le PS avec de nombreuses technologies telles que les serveurs LDAP, les serveurs de messagerie, etc.
Dans cette première partie, vous pourrez trouver une petite histoire de PowerShell ainsi que quelques explications vous permettant d'appréhender les chapitres qui suivent. Il sera aussi décrit les pré-requis nécessaires pour utiliser PowerShell sur un ordinateur.

## Rapide histoire de la technologie PowerShell

PowerShell est basé sur le framework .NET (dot net Windows). Son histoire est donc liée à ce framework dont la première version commerciale est sortie en 2002. Windows PowerShell a été pensé et créé par plusieurs ingénieurs dont M. Jeffrey Snover qui en est l'inventeur selon Wikipedia. Après avoir travaillé pour d'autres grands acteurs de la branche, M. Snover a rejoint Microsoft en 1999. Dès 2003 déjà, il travaille sur un shell objet. En 2006, la version 1.0 de PowerShell est distribuée officiellement. Avec l'arrivée de Windows 7 en 2009, PowerShell est le shell par défaut de Windows et cmd.exe a été laissé pour des raisons de compatibilité. Initialement prévu pour l'administration système, PowerShell est régulièrement étendu et les principaux acteurs du marché fournissent des modules permettant d'automatiser les tâches sur leurs produits. En plus de l'offre commerciale, il y a beaucoup de modules libres distribués, par exemple, sur powershellgallery.
Comme PowerShell peut faire tout ce que peux faire .NET, certains développeurs l'utilise parfois aussi. Récemment, Microsoft développe un framework dotnet destiné à tous les systèmes d'exploitation incluant les mondes Linux et Mac. En 2018, PowerShell suit le mouvement en sortant PowerShell Core 6.0 (licence MIT).

## Principe de la ligne de commande et de la console

Pour interagir avec un ordinateur, nous utilisons actuellement la souris et une interface graphique (des jolies fenêtres avec effets et animations, images, etc.). Taper une commande peut paraître désuet. Pourtant, dans certains cas, la ligne de commande est plus rapide et plus précise. Utilisée dès le début de l'informatique, la ligne de commande a l'énorme avantage de permettre l'automatisation des actions. Un exemple vaut parfois mieux que des explications confuses. Testez ceci : Avec l'interface graphique, démarrez PowerShell, tapez
puis tapez la touche retour ou entrée ce qui exécutera l'action. Avec l'interface graphique, cliquez sur Démarrer, tous les programmes, bloc-notes ce qui effectuera la même action. Chaque instruction fait donc la même chose lorsque vous tapez la touche retour ou entrée que lorsque vous cliquez sur l'icône ! Toutes les instructions peuvent être enregistrées dans un bête fichier texte (avec le notepad par exemple) et vous pouvez exécuter chaque commande une à une. Cela s'appelle un script.

## De l'intérêt des scripts

Automatiser les tâches récurrentes ce qui va indirectement produire les effets suivant :
* Éviter les erreurs humaines (incohérences au niveau de l'orthographe, oublis, etc.).
* Gagner en efficacité car, une fois réalisé, le script va vous faire gagner de nombreuses heures de travail.

## Pré-requis pour se lancer dans PowerShell

Sur Linux, vous devez d'abord installer PowerShell Core selon la procédure de la documentation Microsoft. Pour Windows, tout est déjà préinstallé. Il n'y a aucun prérequis technique selon moi à part peut-être, être administrateur de l'ordinateur et encore, ce n'est pas rédhibitoire. Il vous faut surtout un but à atteindre et un intérêt pour la programmation. Osez mettre les mains dans le cambouis et le reste suivra !