.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. ============== 1-Introduction ============== :Historique: * Avant PowerShell, il y avait des fichiers Batch (.bat) * Concurrence à Linux pour les scripts Bash (.sh) ou CShell (.csh) * C'étaient un regroupement de commandes qui étaient exécutées en lignes de commandes dans command.exe(MS-DOS) et cmd.exe(WINDOWS NT) * En 2003, sous le nom de code de Monade, débute ce qui deviendra PowerShell, simple d'utilisation et puissant * En 2009, Windows 7 intègre nativement la version 2.0, qui propose l'édition de scripts :Utilité: Automatisation de tâches et procédures en utilisant des scripts * Gain de temps * Minimalisation des erreurs :Exemples d'utilisation: * Création/suppression de comptes utilisateurs * Modification et copie de fichiers d'un serveur à un autre pour les intégrer dans une GED * Surveillance de services, d'espaces disques, process,... avec envoi d'emails/alertes * Configuration d'un serveur sans interface graphique * Collecte de données ou administration sur des machines physiques distantes * Installation de systèmes ou programmes :Définition et informations: Interface développée par Microsoft, remplaçant l'invite de commandes et ajoutant des fonctionnalités permettant d'interagir avec le système et de scripter Langage interprété et non typé Outil en lignes de commandes similaire à LINUX Héritage du **Framework.Net**, version 2.0 requise au minimum Orienté objets :Versions natives: * Windows 7 et WS 2008 => PowerShell 2.0 * Windows 8 et WS 2012 => PowerShell 3.0 * Windows 8.1 et WS 2012 R2 => PowerShell 4.0 * Windows 10 et WS 2016 => PowerShell 5.0 (et 5.1 avec Windows Update) * Windows 11 et WS 2022 => PowerShell 5.1 La version 7.3 est multi-plateforme. Lors du choix de l'OS, il faut être conscient que la version 11 demande plus de ressources en espace disque, RAM et CPU. :Installation et préparation de la VM: * :download:`Installation VBox-Win10 <../Exercices/E-122-1-InstallationVM-Win10.pdf>` * :download:`Installation VBox-Win11 <../Exercices/E-122-1-InstallationVM-Win11.pdf>` Utilisation d'une machine virtuelle, pour avoir les droits d'administration 2 interfaces différentes, en 32 et 64 bits * **CLI(Command Line Interface)** est la console en lignes de commande * **ISE(Integrated Scripting Environment)** permet l'édition de scripts et offre la mise en couleur pour les différentes parties de la commande et les listes déroulantes Suite à la l'abandon de la mise à jour de ISE par MS, pour coder, il est préférable d'utiliser VS Code avec l'extention Powershell. :Configuration de Visual Studio Code pour PowerShell: * :download:`Configuration de VS pour PS <../Documents/S-122-VSCode-ISE-Powershell.pdf>` Mise à jour de l'aide avec **Update-Help** Pour des raisons de sécurité, Powershell, par défaut défini un accès **Restricted** pour l'utilisation des scripts Il y a plusieurs niveaux de sécurité : .. image:: Capt-execpolicy.PNG :Politique d'exécution: * **Restricted** pas d'exécution de scripts * **AllSigned** pour les scripts signés numériquement, certificat obtenu avec autorité de certification (CA=Certification Authority) * **RemoteSigned** pour les scripts créés et enregistrés localement * **Unrestricted** pour tous les scripts, situation la moins sécurisée * **Bypass** similiaire à **Unrestricted**, mais sans message de mise en garde On peut connaître la stratégie de sécurité avec la commande **Get-ExecutionPolicy** On la modifie avec la commande **Set-ExecutionPolicy -ExecutionPolicy unrestricted** Trouver la version installée avec **$PSVersionTable.PSVersion**