Programmation PowerShell/Bibliographie
Programmation PowerShell Avant-propos
Programmation PowerShell/Introduction
Pour commencer, 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 
 notepad 
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 : 
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 !

À la découverte d'Unicode/Exemples de textes

L’écriture est un système de représentation graphique d’une langue, au moyen de signes inscrits ou dessinés sur un support, et qui permet l'échange d'informations sans le support de la voix.
Cette définition est bien théorique. Rien de tel pour l'illustrer que de montrer comment on pourrait donner une description de l'écriture, en l'écrivant dans une langue tierce:
penciptaan bahan-bahan yang disampaikan melalui bahasa tulisan.

Programmation PowerShell/Démarrer avec PowerShell

Maintenant que vous savez d'où vient PowerShell et que vous connaissez ses principes dirigeants, je vais pouvoir rentrer dans la technique. Non, n'ayez pas peur, ça ne va pas faire mal !
Premier lancement de PowerShell.
Windows.
Il y a plusieurs possibilités, en voici une : 
Le raccourci Win+R affiche la boîte de dialogue Exécuter. 
La fenêtre contenant la console PowerShell est apparue. Bienvenue dans un monde meilleur !
Linux.
Il y a plusieurs possibilités, en voici une qui fonctionne sur Linux Mint : 
Le raccourci Ctrl+Alt+T démarre le shell de l'utilisateur (chez moi gnome-terminal). 
L'invite de commande doit vous indiquer que vous êtes dans le PoWerSHell version Core !
Apparence.
Comme pour les autres fenêtres, vous pouvez personnaliser l'affichage en augmentant la taille du texte par exemple : 
Quitter le shell.
Comme pour les autres shell, la commande 
 exit
fermera le shell. Utilisez-la, c'est une bonne habitude :-)
Copier Coller.
D'une façon similaire aux shells Unix et Linux, le texte est copié lorsque vous sélectionnez du texte avec la souris dans Powershell et que vous faites un clic-droit sur celui-ci. 
À l'inverse, le texte est collé lorsque vous faites un clic droit dans le PowerShell est qu'aucun texte n'est sélectionné !
Les Command-Lets.
Command-Lets ? Commandlettes ? Kézaco ?
Aussi surnommées Cmdlets, ces commandes permettent de faire des actions dans PowerShell. Elles sont utilisées pour manipuler des objets. On peut les diviser en deux parties : "[Verbe]-[Nom]".
Le verbe correspond à l'action faite, le nom correspond à l'objet manipulé. Logique, non ?
Les 3 commandes qui vous sauveront la vie.
Voici trois commandes bien utiles au début de votre carrière de PowerShelliste : 
Get-Help affiche l'aide
 Get-Help -Name Get-Item
affichera l'aide de la commandlette Get-Item. 
En PowerShell, il y a des arguments par défaut aussi, vous pouvez omettre l'argument -Name comme suit : 
 Get-Help Get-Item
Get-Member affiche des informations sur un objet
 Get-Member -InputObject 4
Au passage, remarquez que 4 n'est pas une lettre mais un System.Int32 soit un chiffre entier. Vous pourrez le comparer à d'autres chiffres, etc. Mais reprenons ... 
En PowerShell, vous pouvez très souvent ignorer la casse et donc taper : 
 get-member -inputobject 4
Format-Table affiche les données sous forme de tableau (en chaîne de caractères)
 Format-Table -InputObject (Get-Date)
Ouh là ... ça devient compliqué ! Nous allons simplifier cela ! Vous pouvez chaîner les commandes en utilisant le caractère | (pipe en anglais). Ceci permet d'éviter l'utilisation de l'argument -InputObject ! Les deux commandes ci-dessus deviennent : 
 4 | get-member
et 
 get-date | format-table
Pas besoin de maîtriser cela pour l'instant. Vous savez ce que c'est et ça suffira pour l'instant. Continuez simplement votre lecture et pratiquez !
« Help, I need somebody... ».
Ne demandez pas de l'aide tout de suite, continuez d'abord votre lecture ! Creusez ! 
Il existe plusieurs forums. En voici un qui me semble bien (actif en 2018) : http://powershell-scripting.com/index.php