Intéressant
sebastien LPowerShell Fonctionnalités avancées (2e édition)
1 avis
Ce livre sur les fonctionnalités avancées de PowerShell s’adresse aux administrateurs et ingénieurs système désireux d’approfondir leurs connaissances et d’aller plus loin avec ce langage de programmation. Dans un premier temps, vous découvrez les différences entre Windows PowerShell (version 5.1) et PowerShell Core (version 7.3 au moment de l’écriture). Vous procédez ensuite à l’installation sur un système Linux et sur un système Windows avant de découvrir un nouvel environnement de...
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Confirmé à Expert
- Nombre de pages 663 pages
- Parution novembre 2023
- Niveau Confirmé à Expert
- Parution novembre 2023
Ce livre sur les fonctionnalités avancées de PowerShell s’adresse aux administrateurs et ingénieurs système désireux d’approfondir leurs connaissances et d’aller plus loin avec ce langage de programmation.
Dans un premier temps, vous découvrez les différences entre Windows PowerShell (version 5.1) et PowerShell Core (version 7.3 au moment de l’écriture). Vous procédez ensuite à l’installation sur un système Linux et sur un système Windows avant de découvrir un nouvel environnement de développement pour vos scripts et modules : Visual Studio Code.
Après un second chapitre sur les fonctions avancées et leur utilisation, vous découvrez comment donner un caractère collaboratif à votre travail avec la création de modules et leur partage à travers la solution de package NuGet. Vous mettez ensuite un pied dans le monde du développement avec la manipulation d’objets personnalisés et l’élaboration de classes d’objets, offrant ainsi de nouvelles possibilités d’écriture pour enrichir votre code. Vous étudiez également les notions de jobs, qui permettent une gestion asynchrone des tâches, et de workflows.
Ensuite, vous étudiez l’énorme potentiel de la fonctionnalité PowerShell DSC pour la gestion d’une infrastructure. Cette fonctionnalité permet de simplifier la configuration d’un nombre important de systèmes en un temps record, ainsi qu’une détection de toute dérive de cette configuration. Vous pourrez ainsi procéder de manière proactive à sa correction avant l’apparition d’incidents.
Vous verrez les fonctionnalités de la version 5.1 de Windows PowerShell en termes de gestion avancée des fichiers (gestion de l’archivage, lien symbolique, fichiers temporaires…) ainsi que les atouts des technologies COM pour la communication avec d’autres applications. Vous explorez une façon d’améliorer la sécurité des systèmes administrés à distance grâce à Just Enough Administration (JEA) et découvrez comment mettre en place PowerShell Web Access pour rendre accessible une console PowerShell depuis un navigateur web.
Pour finir, vous étudiez la création d’interfaces graphiques, la collecte des données de performances ainsi que la manipulation d’annuaires Active Directory.
Dans un premier temps, vous découvrez les différences entre Windows PowerShell (version 5.1) et PowerShell Core (version 7.3 au moment de l’écriture). Vous procédez ensuite à l’installation sur un système Linux et sur un système Windows avant de découvrir un nouvel environnement de développement pour vos scripts et modules : Visual Studio Code.
Après un second chapitre sur les fonctions avancées et leur utilisation, vous découvrez comment donner un caractère collaboratif à votre travail avec la création de modules et leur partage à travers la solution de package NuGet. Vous mettez ensuite un pied dans le monde du développement avec la manipulation d’objets personnalisés et l’élaboration de classes d’objets, offrant ainsi de nouvelles possibilités d’écriture pour enrichir votre code. Vous étudiez également les notions de jobs, qui permettent une gestion asynchrone des tâches, et de workflows.
Ensuite, vous étudiez l’énorme potentiel de la fonctionnalité PowerShell DSC pour la gestion d’une infrastructure. Cette fonctionnalité permet de simplifier la configuration d’un nombre important de systèmes en un temps record, ainsi qu’une détection de toute dérive de cette configuration. Vous pourrez ainsi procéder de manière proactive à sa correction avant l’apparition d’incidents.
Vous verrez les fonctionnalités de la version 5.1 de Windows PowerShell en termes de gestion avancée des fichiers (gestion de l’archivage, lien symbolique, fichiers temporaires…) ainsi que les atouts des technologies COM pour la communication avec d’autres applications. Vous explorez une façon d’améliorer la sécurité des systèmes administrés à distance grâce à Just Enough Administration (JEA) et découvrez comment mettre en place PowerShell Web Access pour rendre accessible une console PowerShell depuis un navigateur web.
Pour finir, vous étudiez la création d’interfaces graphiques, la collecte des données de performances ainsi que la manipulation d’annuaires Active Directory.
Téléchargements
Avant-propos
- À propos de PowerShell
- À propos du livre
Introduction
- Pourquoi automatiser??
- Infrastructure as Code et cloud
- L'entrée dans l'open source
- Le poids d'une communauté
- À propos de l’auteur
PowerShell et la gestion des versions
- Introduction
- 1. Les versions en détail
- 2. GitHub
- 3. .NET Core
- Installation de PowerShell Core
- 1. Téléchargement des sources depuisGitHub
- 2. Installation sous Windows
- 3. Installation sous Linux
- Gestion des mises à jour
- 1. Sous Windows
- 2. Sous Linux
- Les nouveautés, dépréciation et limitations de PowerShell 7
- 1. Nouveautés
- 2. Dépréciation
- 3. Limitations
- Développer en PowerShell avec Visual Studio Code
- 1. Installation de Visual Studio Code
- 2. L’interface de Visual Studio Code
- 3. Extension PowerShell
- 4. Complément d’extension
- 5. Le débogueur
- 6. Utilisation de Git
- Scripter en fonction de l'environnement
- Fonctionnalités expérimentales
Fonctions avancées
- Introduction
- Structure
- 1. Param
- a. Attribut Parameter
- b. Attributs
- c. Attributs de validation
- 1. Param
- 2. CmdletBinding()
- 3. Type de sortie (OutputType)
- 4. Begin/Process/End/Clean
- 1. Jeux de paramètres
- 2. Pipeline
- a. Déterminer les commandes qui acceptent lepipeline
- b. Quand une commande n’accepte pas le pipeline
- c. L’implémentation du pipeline
- d. ValueFromPipeline
- e. ValueFromPipelineByPropertyName
- 1. Déclaration
- 2. Nouvelle collection d’attributs
- 3. Définition et publication du paramètredynamique
- 4. En résumé
- 5. Aller plus loin
- a. Logique d’affichage
- b. Ajout d’attribut de validation
- 1. ArgumentCompletions
- 2. ArgumentCompleter
- a. Structure
- b. Ajout de la saisie utilisateur
- c. Utilisation de PSBoundParameter
- d. Utiliser une fonction
Création de modules
- Introduction
- Module dynamique
- Module binaire
- Module script
- 1. Conversion d’un script en module
- 2. Convention de nommage
- 3. Internationalisation et partage du module
- a. Structure et nommage des dossiers
- b. Format des données et contenu des fichiers
- c. La commande Import-LocalizedData
- d. Gestion de l’erreur en cas de fichier absent
- e. Section Data
- 1. Création du manifeste
- 2. Gestion des versions
- 3. Gestion des versions du framework .NET
- 4. Gestion du contenu additionnel
- 5. Test de conformité d’un manifeste
- 1. La commande Export-ModuleMember
- 2. Comportement particulier
- 1. Création d’un module simple
- 2. Ajout d’une fonction
- 3. Build du module
- 4. Pour la suite
Gestion des modules et des packages
- Introduction
- Module PackageManagement
- 1. Ajout du premier fournisseur
- 2. Recherche d’un package
- 3. Installation d’un package
- a. Depuis Chocolatey
- b. Depuis un MSI ou en MSU
- 4. Listing des packages installés
- 5. Mise à jour d’un package
- 6. Suppression d’un package
- 1. Mise à jour de PowerShellGet pour le supportdu TLS
- 2. Recherche d’une ressource
- a. Versioning
- b. Contenu d’une ressource
- 1. Via un simple partage réseau
- a. PackageManagement
- b. PowerShellGet
- c. Organisation du partage
- a. Installation
- b. Création utilisateur
- c. Création du premier feed (dépôt)
- d. Enregistrement en tant que source et publication d’unmodule
Objets personnalisés et types standards
- Introduction
- Objets personnalisés
- 1. Création d’un objet personnalisé
- 2. Ajout d’un membre
- a. Ajout d’une propriété
- b. Ajout d’une méthode
- 3. Création d’une collection d’objets
- 4. Transformation d’un objet existant en objet personnalisé
- 1. Ajout de membre via un fichier .types.ps1xml
- a. Fichier .types.ps1xml
- b. Ajout d’une propriété
- c. Ajout d’une méthode
- a. Ajout d’une propriété
- b. Ajout d’une méthode
- 1. Fichiers de formatage par défaut
- 2. Objet personnalisé
- a. Personnalisation du type
- b. Application d’un fichier de formatage
- a. Modification du fichier de formatage par défaut
- b. Application du fichier de formatage
Classes
- Introduction
- Création d'une classe
- 1. Mot-clé Class
- 2. Propriété
- 3. Méthode
- 4. Constructeur
- 5. Visibilité
- Surcharge de méthode (overload)
- Statique
- Portée des variables
- 1. Propriété
- 2. Méthode
- a. Globale
- b. Script
- 1. Mot-clé enum
- 2. Manipulation des valeurs
- 1. ValidateSet Dynamique
- 2. ArgumentCompleter
Jobs et parallélisation
- Introduction
- Travaux en arrière-plan locaux (BackgroundJob)
- 1. Création d’un premier job
- 2. Récupération du résultatd’un job
- 3. Arrêt d’un job
- 4. Suppression d’un job
- 5. Erreurs et jobs
- Travaux en arrière-plan basés sur les threads (ThreadJob)
- 1. Utilisation des ThreadJob
- 2. Comparatif de performance avec les BackgroundJob
- Travaux en arrière-plan distants (RemoteJob)
- 1. Lancement d’un job distant
- 2. Multiples destinations
- 3. Attendre la fin de l’exécution des jobs
- Travaux planifiés (PSScheduledJob)
- 1. Création d’un travail planifié
- 2. Mise en place d’un déclencheur (trigger)
- 3. Modification des options
- Workflows (PSWorkflowJob)
- ForEach-Object
- PowerShell API
Workflows
- Introduction
- 1. Qu’est-ce qu’un workflow ?
- 2. Comment fonctionne-t-il ?
- Création d'un workflow
- 1. Mot-clé workflow
- 2. Gestion des paramètres
- a. Paramètres communs
- b. Bloc param
- c. Paramètres propres aux workflows
- 3. Exécution à travers une sessiondistante
- 4. Exécution en tant que job
- 1. Restrictions de commande
- 2. Restrictions sur les objets
- 3. Restrictions de langage
- 4. Mot-clé InlineScript
- a. Syntaxe
- b. Portée des variables
- 1. Bloc parallel
- 2. Bloc sequence
- 3. Mot-clé Foreach
Desired State Configuration (DSC)
- Introduction
- Versions et plateformes supportées par DSC
- Vue d'ensemble de la solution
- 1. Terminologie
- 2. Considérations générales
- 3. Deux modes : PUSH et PULL
- a. PUSH
- b. PULL
- 4. Configuration
- 5. Présentation des ressources DSC
- 6. Gestionnaire de configuration local (LCM)
- 1. Lister des ressources présentes
- 2. Ressources intégrées
- a. Utilisation générale d’une ressource
- b. Cas particulier avec la ressource Script
- a. Suivi des nouveautés
- b. Interrogation de la PowerShell Gallery
- c. Installation depuis la PowerShell Gallery
- d. Politique de nommage des ressources DSC
- e. Ressources personnalisées
- f. Utilisation des ressources
- 1. Création rapide avec ISE
- 2. Application d’une configuration
- 3. Utilisation de paramètres
- 4. Importation d’une ressource
- 5. Données de configuration (Configuration Data)
- a. Définition d’une configuration environnementale
- b. Variables spéciales $ConfigurationData, $AllNodes, $Nodes
- c. Prise en compte de la configuration environnementale
- d. Résumé
- 1. Configuration courante
- 2. Configuration du LCM
- 3. Application d’une métaconfiguration
- 1. Fichier MOF de configuration
- 2. Fichier MOF de métaconfiguration
- 1. Prérequis
- 2. Étapes de réalisation
- 3. Données de configuration (Configuration Data)
- 4. Configuration
- a. Écriture des configurations
- b. Génération des fichiers MOF
- c. Configuration du LCM
- d. Application de la configuration
- 1. Évolution du PULL Server
- 2. PULL Server sous partage SMB
- 3. PULL Server Web
- a. Prérequis
- b. Écriture de la configuration du PULL Server
- c. Deux modes de configuration pour le LCM
- d. Configuration du LCM en fonction de l’ID
- e. Configuration du LCM en fonction du nom
- f. Forcer une mise à jour de configuration
- 1. Ressource composite
- 2. Configuration partielle
- a. Conception des configurations partielles
- b. configuration du LCM
- c. PUSH d’une configuration partielle
- d. PULL d’une configuration partielle
- e. Allier PUSH et PULL
- 1. Ressource personnalisée avec un fichier MOF
- a. Constitution d’une ressource basée sur unschéma MOF
- b. Aide à la création de ressources(xDSCResourceDesigner)
- c. Génération de la structure du module
- d. Écriture du fichier PSM1
- e. Déploiement de la ressource
- f. Vérification de la prise en compte de laressource
- a. Constitution d’une ressource basée sur uneclasse PowerShell
- b. PowerShell ISE à la rescousse
- c. Rédaction du fichier PSM1
- d. Génération et modification du manifeste
- e. Déploiement de la ressource
- 1. Prérequis
- a. Installation du package OMI
- b. Installation du package DSC
- 1. Forcer la réapplication d’une configuration
- 2. État d’une configuration DSC
- 3. Remise d’un système à son étatd’origine
- 4. Activation du mode Verbose
Gestion avancée des fichiers
- Introduction
- Gestion de l'archivage
- 1. Compress-Archive
- 2. Expand-Archive
- 3. Avant PowerShell 5.1
- a. Compression d’un dossier
- b. Décompression d’une archive
- 1. Fichiers
- 2. Dossiers
- 1. Mode basique
- 2. Mode avancé
Communication avec d'autres applications
- Introduction
- Les technologies COM
- Manipulation des objets COM
- 1. Recherche d’objets
- 2. Création/instanciation d’un objet
- 3. Utilisation d’une application COM
- a. Internet Explorer
- b. Microsoft Excel 2016
- c. Windows Script Host (WSH)
Gestion à distance avancée
- Introduction
- JEA (Just Enough Administration)
- 1. Pourquoi JEA ?
- 2. Prérequis
- 3. Rappel
- a. Une session, c’est quoi ?
- b. Configuration d’une session (PowerShell 4.0et versions antérieures)
- c. Ce qui change avec PowerShell 5.0
- 4. Capacité de rôle
- a. Préparation
- b. Fichier de capacité de rôle
- c. Intégration dans un module
- d. Fusion des capacités de rôle
- 5. Sessions
- a. Fichier de configuration de session
- b. Enregistrement d’une session
- c. Modification d’une session
- d. Utilisation des sessions
- 6. Audit
- a. Conformité des configurations de session
- b. Transcription
- 7. Configuration via DSC
- 1. Prérequis
- 2. Installation
- 3. Configuration
- a. Installation de l’application web
- b. Règles d’accès
- 1. Installation sous Windows
- 2. Installation sous Linux
- 3. Établissement de la connexion
Création d’interfaces graphiques
- Introduction
- 1. Pourquoi une interface graphique ?
- 2. Vers quoi se tourner ?
- Windows Forms
- 1. Présentation des Windows Forms
- 2. Réalisation d’une premièreForm
- 3. Ajout d’une action à une Form
- a. Événements
- b. Menus
- 4. Exemple de contrôle
- 5. Création de graphiques avec MS Chart Controls
- 1. Création d’une interface sur Visual Studio
- 2. Gestion des contrôles et de leurs événements
- 3. Création de graphiques évoluésavec LiveCharts
- 4. Changement de thème avec MahApps
Collecte de données de performances
- Pourquoi et comment collecter des données de performances??
- Windows Performance Logs and Alerts (PLA)
- Jeu de commandes PowerShell
- 1. Listing des catégories de compteurs de performances
- 2. Détermination du bon compteur
- 3. Accès aux données de compteurs
- a. Contrôle du nombre de jeux de donnéeset de la fréquence
- b. Collecte des données sur des ordinateursdistants
- 4. Utilisation des jobs pour les tâches longues
- 5. Sauvegarde des données de performances surdisque
- a. Exportation des données de performances auformat binaire (BLG)
- b. Exportation des données de performances auformat Excel (CSV)
- 6. Manipulation d’un fichier d’export de donnéesde performances
- 1. Création du fichier de configuration XML
- 2. Création et déploiement d’un ensemblede collecteurs de données
- a. Réalisation via logman
- b. Réalisation via l’objet COM PLA
- a. Interrogation des ensembles de collecteurs de donnéesexistants
- b. Démarrage d’un ensemble de collecteurs dedonnées
- c. Arrêt d’un ensemble de collecteurs de données
- d. Suppression d’un ensemble de collecteurs de données
Manipulation d’annuaires
- Introduction
- Module Active Directory
- 1. Prérequis
- 2. Recherche d’objets
- a. Recherche basée sur l’identité
- b. Filtre générique
- c. Filtre LDAP
- 3. Gestion des unités d’organisation
- a. Création d’une unité d’organisation
- b. Modification d’une unité d’organisation
- c. Suppression d’une unité d’organisation
- 4. Gestion des utilisateurs
- a. Affichage de la liste des utilisateurs et de leurspropriétés
- b. Création d’un utilisateur
- c. Modification du mot de passe et activation d’un objetutilisateur existant
- d. Modification d’un attribut
- e. Suppression d’un utilisateur
- 5. Gestion des groupes
- a. Affichage de la liste des groupes
- b. Création d’un groupe
- c. Gestion des membres
- d. Suppression d’un groupe
- 6. Utilisation du provider Active Directory
- a. Exploration du provider
- b. Déplacement d’objets
- c. Modification d’objets
- d. Utilisation des commandes Active Directory
- e. Création d’un PSDrive vers un autredomaine
- 1. Présentation d’ADSI
- 2. Confusion avec Active Directory
- 3. Encore utile aujourd’hui ?
- 4. Interaction avec une base locale SAM
- a. Généralités
- b. Groupes locaux
- c. Utilisateurs locaux
- a. Connexion à l’annuaire
- b. Connexion à un domaine avec un utilisateurdifférent
- c. Recherche d’objets
Nicolas BAUDIN
Dès ses études en informatique, Nicolas Baudin s'est rapidement passionné pour le langage PowerShell. Aujourd'hui ingénieur Système en environnement Microsoft, il n'a cessé de monter en compétence sur le sujet. Fort de cette expérience, il propose aujourd’hui à travers son statut de freelance des prestations pour faciliter l’automatisation de tâches à travers PowerShell, telles que des interventions chez des clients ou l’animation de formations. À titre personnel, il fait également partie de la DSC Community au titre de mainteneur de ressource DSC et anime et aide la communauté française sur le serveur Discord PowerShell.
En savoir plus