Vous avez suivi les formations PowerShell : Niveau Initiation et PowerShell : Niveau Avancé et vous souhaitez maintenant élever vos compétences au niveau supérieur ? Cette formation est alors faite pour vous.
Au cours de cette formation, vous allez approfondir vos connaissances sur la portée des variables et vous apprendrez à accéder à une variable d’une portée différente.
Vous apprendrez à développer des fonctions avancées qui vous permettront de donner à vos fonctions l’aspect d’une vrai Cmdlet PowerShell.
Vous découvrirez les Classes et vous apprendrez à développer des scripts Orientés Objets. Vous apprendrez également à utiliser les énumérations grâce à PowerShell.
Vous apprendrez à utiliser PowerShell avec le Framework DotNet de façon plus détaillée et vous apprendrez à utiliser les Assemblies et les Espaces de nom. Vous apprendrez à utiliser les Classes du Framework DotNet avec PowerShell.
Au cours de cette formation, vous apprendrez également à utiliser les collections d’objets avancées, tel que les Lists, les Dictionaries, les Queues ainsi que les Stacks. Tout ceci grâce aux Classes du Framework DotNet.
Vous découvrirez la structure des Modules PowerShell et vous apprendrez à développer vos propres modules PowerShell.
Au cours de cette formation vous apprendrez à développer des interfaces graphiques grâce au Framework .Net et PowerShell.
Vous apprendrez également à exécuter des scripts à distance et à signer des Scripts PowerShell.
Cette formation se terminera par plusieurs travaux de mises en pratiques.
3. Une formation
Introduction
1. Environnement de travail
2. Portée des variables
3. Fonctions avancées
4. Classes PowerShell
5. Enumération
6. PowerShell & Framework DotNet
7. Allez plus loin avec les collections d'objet
Plan de la formation
4. Une formation
8. Modules PowerShell
9. Communication à distance
10. Sécurité de l'environnement
11. Développer une interface graphique avec
WinForm
12. Mettre en pratique les acquis
Conclusion
Plan de la formation
9. Une formation
Vous devez avoir installé PowerShell
Vous devez avoir installé Visual Studio
Code
Pour suivre la formation
10. Une formation
Pour certaines démonstrations, 4 VMs
seront utilisées :
1. Un domaine Active Directory
2. Une PKI pour la signature de Script
3. Deux Clients Windows 10
Démonstration
11. Rappel sur la portée
des variables
Une formation
John Mike
12. Une formation
Pour rappel
Portée parent
$Ville = "Paris"
Portée enfant
$Ville #Accessible en lecture
$Ville #La variable ne peut pas être modifiée
$Var_Enfant = "Test" #La variable n'est pas accessible depuis la
portée parent
14. Une formation
La portée globale correspond au
moment ou vous démarrez
PowerShell
Exemple : Si vous initialisez une
variable au démarrage de PowerShell,
sa portée sera globale
Portée Globale
15. Une formation
Lorsque vous exécutez une fonction
ou un bloc d'instructions, vous créez
une portée Locale
Exemple : Si vous initialisez une
variable à l'intérieur d'une fonction, sa
portée sera locale
Portée Locale
16. Une formation
La portée Script est créée pendant le
temps d'exécution du Script
Une fois le Script terminé, la portée
n'existera plus
Portée Script
17. Une formation
La portée privée permet de rendre le
contenu d'une variable inaccessible à
la portée parent et enfant
Portée Privée
23. Une formation
Comme son nom l'indique, il s'agit de
fonction simple avec une structure
simple
Les paramètres communs ne sont pas
utilisables avec les fonctions simples
Fonctions simples
24. Une formation
Fonction permettant de reproduire le
comportement d'une cmdlet
Prise en charge des paramètres
communs
Fonction plus structurée, plus
maintenable, etc…
Fonctions avancées
27. Une formation
Votre fonction pourra accepter des
objets en entrée via le pipeline
Utilisation des paramètres communs
Rendre certains paramètres
obligatoires
Avantages
36. Une formation
L'attribut Parameter peut recevoir des
arguments qui vont permettre d'agir
sur le comportement de chaque
paramètre de la fonction avancée
Comment ?
39. Une formation
Parce que vous êtes professionnel
La Cmdlet Get-Help pourra être
utilisée pour obtenir de l'aide sur
votre fonction avancée
Pourquoi ?
40. Une formation
En utilisant les commentaires
multilingues avec des mots clés
spécifiques qui feront office de
section
Comment ?
48. Une formation
Tout objet est associé à un type
Exemple : le chiffre 10 est un type
entier, on peut donc dire que 10 est
un objet de type entier
Et PowerShell dans tout ça ?
49. Une formation
Un objet est caractérisé par son type,
ses propriétés et ses méthodes
Et PowerShell dans tout ça ?
51. Une formation
La classe correspond au modèle de
votre Objet
La classe spécifie le type et le
fonctionnement de votre Objet, elle
va caractériser votre Objet
Définition
52. Une formation
La fabrication d'une voiture se base
sur un plan
Le plan de fabrication, va définir la
voiture, ses propriétés, ses méthodes
ainsi que le type de voiture
Exemple de la vie réelle
53. Une formation
Ce plan, en Programmation Orienté
Objet, est la Classe
Pour fabriquer la voiture, qui est un
Objet, vous allez vous baser sur le
plan de fabrication, donc la Classe
Exemple de la vie réelle
54. Une formation
En programmation Orienté Objet,
pour construire un Objet à partir
d'une Classe, on dit qu'on va
instancier notre Objet
En Programmation Orienté Objet
55. Une formation
A partir d'un plan de fabrication, vous allez
pouvoir construire plusieurs voitures
A partir d'une classe, vous allez pouvoir
instancier plusieurs fois votre Objet
Pour résumer
56. Une formation
La Classe est le plan de fabrication de
votre Objet informatique
La Classe définit la structure de votre
Objet
Vous avez compris que…
58. Une formation
Une propriété est une information sur
l'objet
C'est tout simplement une variable de
classe qui va caractériser votre objet
Définition
59. Une formation
Le nombre de porte d'une voiture, est
une propriété qui va définir le nombre
de portes que la voiture aura
Cette propriété est définie dans le
plan de fabrication, donc dans une
Classe
Exemple de la vie réelle
68. Une formation
La surcharge de méthode permet de
créer plusieurs méthodes qui portent
le même nom
La surcharge de méthode
69. Une formation
Pour rappel, une méthode
possède des paramètres qui
sont typés
Pourquoi surcharger une méthode ?
70. Une formation
En surchargeant une méthode, on
peut créer une méthode qui porte le
même nom mais avec des paramètres
différents ou des paramètres d'un
autre type
Pourquoi surcharger une méthode ?
72. Une formation
Un constructeur est une méthode qui
est automatiquement appelée à
chaque fois que vous instanciez votre
objet à partir d'une classe
Définition
81. Une formation
Il sera possible d'utiliser les membres
d'une classe de base à partir d'une
classe dérivée
Intérêt
82. Une formation
Pour comprendre
Classe Véhicule - Base
Classe VoitureVolante
Dérivée de Véhicule
Classe Voiture
Dérivée de Véhicule
Rouler()
Freiner()
Utilisation des
Méthodes de la
Classe de Base
Utilisation des
Méthodes de la
Classe de Base
88. Une formation
Il n'est pas possible de faire varier les
valeurs ou le nom des étiquettes au
cours de l'exécution du script
Ce sont des constantes
89. Une formation
Exemple : les valeurs de la variable
$ErrorActionPréférence sont définis
grâce à l'énumération :
System.Management.Automation.ActionPreference
PowerShell les utilise…
97. Une formation
Microsoft sortira la version 5 du
Framework qui sera tout simplement
la fusion des 2 éditions
A partir de novembre 2020, un seul
Framework DotNet qui sera
OpenSource et Multiplateforme
A partir de novembre 2020
101. .Net Standard
Une formation
Infrastructure
.NET 5
Bureautique
WPF
Windows Forms
UWP
Web
ASP.NET
Cloud
Azure
Mobile
Xamarin
Jeux Vidéos
Unity
IoT
ARM32
ARM64
AI
ML.NET
.NET pour
Apache Spark
Composants Runtime Compilateurs Langages
Outils
Visual Studio
Visual Studio Code
Ligne de commandes
129. Une formation
Représente une collection d'objets se
basant sur le principe du Premier
Entré / Premier Sorti
Définition
130. Une formation
C'est une file d'attente…
Dans une file d'attente, on commence
toujours par recevoir le premier
arrivé…
Donc, le premier reçu, sera le premier
à partir
Définition
141. Une formation
Découverte automatique…
Pour que votre module soit
automatiquement découvert par
PowerShell, il doit être installé dans
un des répertoires référencés par la
variable $Env:PSModulePath
144. Une formation
Un manifeste est un script qui porte
l'extension .psd1 et qui va contenir
des métadonnées sur votre Module
Qu'est ce qu'un Manifeste?
145. Une formation
Le manifeste va contenir un certain
nombre d'informations concernant
votre Module
Pour faire plus simple
146. Une formation
Nom de l'auteur du Module
Version du Module
Pré-requis pour le Module
Fichiers à charger
Etc…
Quoi comme information ?
147. Une formation
Un Manifest est obligatoire si vous
souhaitez publier votre module sur
PowerShellGallery.com ou sur un
autre dépôt
Obligatoire si…
148. Une formation
A la main ? Source d'erreur et
compliqué
Il faut utiliser la Cmdlet
New-ModuleManifest
Comment le créer ?
150. Une formation
Lorsqu'un module est importé, seul
les fonctions sont disponibles
Si votre module contient des Variables
et des Alias, ils ne seront pas
disponibles
Pourquoi exporter ?
151. Une formation
Pour rendre disponible les Variables et
les Alias il faut les exporter grâce à la
Cmdlet Export-ModuleMember
Cette Cmdlet doit être utilisée à
l'intérieur de votre module, donc dans
votre fichier .psm1
Pourquoi exporter ?
152. Une formation
A partir du moment où vous utilisez la
Cmdlet Export-ModuleMember, vous
serez obligé d'exporter vos fonctions
Ils ne seront plus automatiquement
exportées du fait de l'utilisation de
cette Cmdlet au sein de votre Module
Attention…
154. Une formation
Pour administrer un parc de serveurs
Pour administrer un parc de clients
Exécuter des scripts complexes sur
des serveurs distant
Pourquoi communiquer à
distance ?
160. Une formation
WinRM est une technologie qui
s'appuie sur le protocole
WS-Management
Pour être plus précis
161. Une formation
Entre machines membres d'un
domaine Active
Authentification : Kerberos
Chiffrement : Clé symétrique de 256
bits (Même si c'est HTTP)
Authentification / Chiffrement
162. Une formation
Entre machines hors domaine
Authentification : NTLM
Chiffrement : Clé symétrique de 256
bits (Même si c'est HTTP)
Authentification / Chiffrement
163. Une formation
Etre membre du groupe
Administrateurs de la machine
distante
Activer WinRM grâce à la cmdlet
Enable-PSRemoting
Prérequis
164. Une formation
Active le service WinRM et le met en
démarrage automatique
Crée un écouteur pour accepter les
demandes de connexion
Que fait Enable-PSRemoting ?
166. Une formation
WinRM n'est pas exclusif à PowerShell
WinRM peut être utilisé avec d'autres
technologies
La commande Windows WinRS
permet également de gérer Windows
à distance à travers WinRM
Sachez que…
167. Une formation
PowerShell ne fait que s'appuyer sur
la technologie WinRM pour la gestion
à distance
Sachez que…
168. Les Cmdlets pour la
communication à distance
Une formation
John Mike
169. Une formation
Pour une session interactive :
Enter-PSSession
Pour exécuter un script à distance :
Invoke-Command
Pour ouvrir une session permanente :
New-PSSession
Cmdlets
180. Une formation
Permet d'être sur de la provenance du
Script
Permet d'être sur que le Script n'a pas
été modifié après signature (Intégrité)
Pourquoi signer un Script ?
181. Une formation
Il faut un certificat délivré par une PKI
La stratégie d'exécution PowerShell
doit être AllSigned
Comment faire ?
183. Introduction à la création
d'interface graphique
Une formation
John Mike
184. Une formation
Il est plus simple pour les utilisateurs
finaux d'avoir des outils graphiques
plutôt que des outils en ligne de
commande
Pourquoi créer des
interfaces graphiques
187. Une formation
Chaque élément de l'interface
graphique est nommé "contrôle"
Chaque contrôle possède plusieurs
propriétés, méthodes et évènements
Comment ?
188. Une formation
Une propriété est une information sur
le contrôle qui va le caractériser
Exemple : Couleur du bouton
Qu'est ce qu'une propriété ?
189. Une formation
Une méthode est une action que le
contrôle pourra effectuer
Exemple : La méthode "OnClick"
déclenchera l'évènement "Click"
Qu'est ce qu'une méthode ?
190. Une formation
Un évènement est quelque chose que
l'utilisateur effectuera
Exemple : Le clic sur un bouton est un
évènement
Qu'est ce qu'un évènement ?
191. Une formation
C'est à vous de définir l'action qui se
produira lorsque l'évènement sera
détecté
Qu'est ce qu'un évènement ?
206. Une formation
Environnement de travail
Portée des variables
Fonctions avancées
Classes PowerShell
Enumération
PowerShell & Framework DotNet
Allez plus loin avec les collections d'objet
Bilan