Formation
PowerShell
Niveau Avancé
Une formation
John Mike
Une formation
Cursus Powershell
Une formation
Introduction
1. Langage PowerShell
2. Variables
3. Types de données
4. Tableaux
5. Structures conditionnelles
6. Structures répétitives (Boucles)
7. Erreurs & Exceptions
Plan de la formation
Une formation
8. Fonctions
9. Ecrire dans les différents Flux / Write-*
10. Les jobs - Travaux en arrière plan
11. Manipuler les Dates
12. Manipuler des données HTML, JSON,
CSV, XML
13. Objets
14. Mettre en pratique les acquis
Conclusion
Plan de la formation
Une formation
Public concerné
Ingénieur Système
Administrateur Système
Technicien Support
Une formation
Connaissances requises
Avoir suivi la formation Niveau Initiation
Bonne connaissance sur l'administration Windows
Préparer
l'environnement
Une formation
John Mike
Une formation
https://code.visualstudio.com
Installation Visual Studio Code
Introduction au langage
PowerShell
Une formation
John Mike
Une formation
Langage de script orienté objet
Insensible à la casse
Syntaxe simple
Facile à apprendre
Développer des outils et automatiser
Langage PowerShell
Une formation
Un script PowerShell est un fichier
portant l'extension *.ps1
Un Script PowerShell est un ensemble
d'instructions
Script PowerShell
Une formation
En plus d'être orienté Objet,
PowerShell est modulaire
Modulaire
Une formation
PowerShell vous offre la possibilité
d'utiliser les objets COM pour
interagir avec d'autres applications
Possibilité d'utiliser les classes du
Framework .Net
Objet COM et .Net
Commentaires
Une formation
John Mike
Une formation
Un commentaire permet de décrire et
d'expliquer des parties de votre script
Très utile lorsque vous partagez votre
Script
Utilité des commentaires
Une formation
Permet de désactiver une instruction
ou un bloc d'instructions
Utilité des commentaires
Régions
Une formation
John Mike
Une formation
Les régions permettent de structurer
votre Script
Aucun impact sur votre Script, c'est
juste de l'organisation
Utilité des Régions
Directive #Requires
Une formation
John Mike
Une formation
La directive #Requires permet
d'imposer des prérequis pour que
votre Script puisse s'exécuter
Si les prérequis ne sont pas respectés,
le Script ne pourra pas s'exécuter
Directive #Requires
Une formation
Pour imposer une version minimale
de PowerShell installée sur votre
système
#Requires -Version 6
Exemple
Une formation
Pour imposer que votre Script soit
exécuté en tant qu'administrateur
#Requires -RunAsAdministrator
Exemple
Une formation
Pour imposer la présence d'un
module sur votre Système
#Requires -Module PSReadLine
Exemple
Déclarer et Manipuler
les variables
Une formation
John Mike
Une formation
Une variable est une donnée de votre
script stockée en mémoire vive (RAM)
Elle peut changer de valeur à tout
moment au cours de l'exécution de
votre script
Pour rappel
Une formation
$Site = "www.alphorm.com"
Pour rappel
Une formation
Get-Variable
New-Variable
Set-Variable
Clear-Variable
Remove-Variable
Cmdlets pour gérer les variables
Une formation
New-Variable ou $variable ?
New-Variable permet de déclarer une
variable en spécifiant des paramètres
et options
Constantes
Une formation
John Mike
Une formation
Une constante est une variable qui ne
peut pas changer de valeur pendant
que le Script est en cours d'exécution
Définition
Concaténation
Une formation
John Mike
Une formation
La concaténation est un terme qui
indique qu'on souhaite regrouper
plusieurs éléments dans une seule
chaine de caractères
Définition
Incrémenter & Décrémenter
Une formation
John Mike
Une formation
L'incrémentation permet d'augmenter
la valeur d'une variable à chaque
passage
Incrémenter
Une formation
$NomVariable +=1
$NomVariable++
2 manières d'incrémenter
Une formation
La décrémentation permet de
diminuer la valeur d'une variable à
chaque passage
Décrémenter
Une formation
$NomVariable -=1
$NomVariable--
2 manières de décrémenter
Here-String
Une formation
John Mike
Une formation
Here-String permet de déclarer un
bloc de texte sur plusieurs lignes en
préservant son format
Définition
Portée des variables
Une formation
John Mike
Une formation
Portée des variables
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
Types de données
Une formation
John Mike
Une formation
Le type de données détermine le type
d'objet que va contenir votre variable
PowerShell est un langage à typage
dynamique, il reconnait
automatiquement le type d’une
donnée
Introduction
Une formation
Il est préférable pour éviter les
confusions, de forcer le type d'une
donnée
Introduction
Une formation
Introduction
Variable Objets
Référence des objets de type Jouets
Numériques
Une formation
John Mike
Une formation
Nombres Entiers
Nombres Long
Nombres à Virgule Flottante
3 types numériques courants
Une formation
Peut stocker un nombre de
-2 147 483 648
à
2 147 483 647
Types entiers int
Une formation
Peut stocker un nombre de
-9 223 372 036 854 775 808
à
9 223 372 036 854 775 807
Types longs long
Une formation
Peut stocker un nombre flottant de
-1.79769313486232E+308
à
1.79769313486232E+308
Virgule flottante double
Booléens
Une formation
John Mike
Une formation
Un type booléen ne peut prendre que
deux valeurs : True ou False
Permet de tester des vérités
Type booléens
Chaine de caractères
Une formation
John Mike
Une formation
Une chaine de caractère est une suite
de caractères formant un texte
Type chaine de caractères
Conversion de Types
Une formation
John Mike
Une formation
La conversion d'un type permet de
convertir un objet d'un type vers un
autre
Utilité
Une formation
Un chiffre entre guillemet est une
chaine de caractères
$var = "1"
Pour effectuer des opérations sur ce
chiffre, il faudra le convertir en entier
Exemple
Introduction aux
tableaux
Une formation
John Mike
Une formation
Un tableau est une structure de
données qui permet de référencer
plusieurs objets
Un tableau est une collection d'objets
Qu'est ce qu'un tableau ?
Une formation
1. Tableaux indexés
2. Tableaux associatifs (HashTable)
Deux types de tableau
Tableaux indexés
Une formation
John Mike
Une formation
Un tableau indexé stocke des objets
qui sont référencés par index
Peut référencer des objets de
n'importe quel type
Tableaux indexés
Une formation
Exemple
Index Valeur
0 Paris
1 75016
2 Nice
3 Annecy
Tableaux associatifs
Une formation
John Mike
Une formation
Un tableau associatif référence des
objets sous forme de paire clé / valeur
Tableaux associatifs
Une formation
Exemple
Clés Valeurs
Pays France
Region Ile De France
Ville Paris
Introduction aux structures
conditionnelles
Une formation
John Mike
Une formation
Les structures conditionnelles
permettent de tester une condition
avant de prendre une décision
Utilité
Une formation
SI la voiture est bleu, ALORS j'achète
la voiture
SINON j'achète pas la voiture
Exemple de la vie courante
Une formation
SI la taille du fichier est supérieur à 2
MO, ALORS le fichier sera compressé
SINON le fichier ne sera pas
compressé
Exemple Informatique
Une formation
if
switch
Deux instructions
Structures conditionnelles
avec if else
Une formation
John Mike
Une formation
if (condition)
{
instructions
}
else
{
instructions
}
Syntaxe de base
Structures conditionnelles
avec if elseif else
Une formation
John Mike
Une formation
Syntaxe de base
if (premiere_condition)
{
instructions
}
elseif(deuxième_condition)
{
instructions
}
Une formation
Syntaxe de base
elseif(troisième_condition)
{
instructions
}
else
{
instructions
}
Structures conditionnelles
avec switch
Une formation
John Mike
Une formation
Si vous avez beaucoup de conditions
à tester avec elseif, mieux vaut utiliser
switch qui améliore la lisibilité de
votre script et qui offre plus de
souplesse
Pourquoi utiliser switch
Introduction aux structures
répétitives (Boucles)
Une formation
John Mike
Une formation
Une boucle permet de répéter des
instructions plusieurs fois jusqu'à ce
que la condition soit respectée
Introduction
Une formation
While
Do-While
Do-Until
For
Foreach
Types de boucles
Boucles avec While
Une formation
John Mike
Une formation
while (condition)
{
instructions
}
Syntaxe de base
Boucles avec Do-While
Une formation
John Mike
Une formation
A la différence de While, avec Do-
While on est sûr d'exécuter
l'instruction au moins une fois même
si la condition n'est pas respectée
Do-While
Une formation
Il faut privilégier l'utilisation de do
while pour répéter une instruction
jusqu'à ce que la condition devienne
négative (False)
Pourquoi utiliser Do-While
Une formation
Syntaxe de base
do
{
instructions
}
while (condition)
Boucles avec Do-Until
Une formation
John Mike
Une formation
Avec do until, on est sûr d'exécuter
l'instruction au moins une fois même
si la condition n'est pas respectée
Do-Until
Une formation
Il faut privilégier l'utilisation de do
until pour répéter une instruction
jusqu'à ce que la condition devienne
positive (True)
Pourquoi utiliser Do-Until
Une formation
Syntaxe de base
do
{
instructions
}
until(condition)
Boucles avec For
Une formation
John Mike
Une formation
for ($val_depart ; cond_sortie ; $val_depart++)
{
instructions
}
Syntaxe de base
Boucles avec Foreach
Une formation
John Mike
Une formation
La boucle foreach est idéal pour
parcourir un tableau ou une collection
d'objets
Pourquoi utiliser Foreach
Une formation
Contrairement à la boucle for, avec
foreach, vous n'avez pas besoin de
vérifier une condition de sortie
Pourquoi utiliser Foreach
Une formation
foreach, détectera automatiquement
la fin d'une collection d'objets et
sortira de la boucle
Pourquoi utiliser Foreach
Une formation
Syntaxe de base
foreach ($element in $collection)
{
instructions
}
Break & Continue
Une formation
John Mike
Une formation
Les instructions Break & Continue
vous offre un contrôle sur vos boucles
Break & Continue
Une formation
L'instruction Break permet de sortir
d'une boucle
Break
Une formation
L'instruction Continue permet de
sauter une itération pour passer à
l'itération suivante
Continue
Introduction aux Erreurs
et Exceptions
Une formation
John Mike
Une formation
Erreurs critiques (Terminating)
Erreurs non critiques (Non-Terminating)
Deux types d'erreurs
Une formation
Les erreurs critiques mettent fin à
l'exécution du script
Erreurs critiques
Une formation
Les erreurs non critiques ne mettent
pas fin à l'exécution du script et sont
plus considérées comme des
avertissements
Erreurs non critiques
Deux façons de
définir le comportement
en cas d'erreur
Une formation
ErrorAction qui va permettre de définir
le comportement en cas d'erreur pour
chaque Cmdlet
Avec le paramètre commun
Une formation
$ErrorActionPreference qui va
permettre de définir le comportement
global en cas d'erreur
Avec la variable de préférence
Gérer les erreurs critiques
avec le bloc try catch
finally
Une formation
John Mike
Une formation
Pour gérer une erreur critique, il faut
définir le paramètre commun
ErrorAction ou la variable
$ErrorActionPreference à la valeur
stop
Gérer une erreur critique
Gérer les erreurs non
critique
Une formation
John Mike
Introduction aux
fonctions
Une formation
John Mike
Une formation
Une fonction permet de regrouper un
ensemble d'instructions en un bloc
nommé
Définition
Une formation
Simplifie la réutilisabilité de code
Pas besoin de répéter vos instructions
Avantages
Une formation
1. Fonctions simples
2. Fonctions avancées
Deux types de fonctions
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
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
Une formation
Une fonction peut-être avec
paramètres ou sans paramètres
Paramètres
Fonctions simples sans
paramètres
Une formation
John Mike
Une formation
function NomFonction
{
instructions
}
Syntaxe de base
Fonctions simples avec
paramètres
Une formation
John Mike
Une formation
function NomFonction
{
param([Type]$NomParamètre)
instructions
}
Syntaxe de base
DotSourcing
Une formation
John Mike
Une formation
Le DotSourcing permet d'exécuter le
contenu d'un script dans la portée
courante
Définition
Une formation
Permet de rendre une variable ou une
fonction réutilisable autant de fois
que nécessaire depuis la console
PowerShell dans la portée courante
Intérêt
Une formation
Votre script se lancera et les variables
et fonctions ne seront plus utilisables
après la fin de l'exécution du script
dans la console PowerShell
Sans DotSourcing
Une formation
Votre script se lancera et les variables
et fonctions seront toujours utilisables
après la fin de l'exécution du script
dans la console PowerShell
Avec DotSourcing
Une formation
Exécuter un script sans DotSourcing
./NomScript.ps1
Exécuter un script avec DotSourcing
. ./NomScript.ps1
Comment l'utiliser ?
Introduction aux
différents flux
Une formation
John Mike
Une formation
L'opérateur de redirection > permet
de rediriger le flux vers un fichier
Pour rediriger le flux des erreurs, on
utilise 2>
Pour rappel
Une formation
Chaque flux est associé à un chiffre
qui permet d'identifier le flux
Plusieurs flux
Une formation
Le flux 0 correspond au flux d'entrée à
partir duquel la console PowerShell
reçoit les données
Par exemple, le clavier
Flux 0 : Entrée Standard
Une formation
Le flux 1 correspond au flux de sortie
standard par défaut à partir duquel
les données sont affichées
Par exemple, la console PowerShell
Flux 1 : Sortie Standard
Une formation
Le flux 2 correspond au flux de sortie
des erreurs
Flux 2 : Erreur
Une formation
Le flux 3 correspond au flux de sortie
des messages d'avertissement
Flux 3 : Message d'avertissement
Une formation
Le flux 4 correspond au flux de sortie
des messages verbeux
Flux 4 : Message verbeux
Une formation
Le flux 5 correspond au flux de sortie
des messages de débogage
Flux 5 : Message de débogage
Une formation
Le flux 6 correspond au flux de sortie
des messages d'information
Flux 6 : Message d'information
Une formation
L'étoile * représente tous les flux
* : Tous les flux
Une formation
Par défaut, c'est la console PowerShell
qui reçoit tous les flux
Il est important de bien choisir le flux
de vos messages pour mieux les
rediriger
Et donc ?
Une formation
Si vous savez que vous devez envoyer
un message d'avertissement, il est
important d'utiliser la Cmdlet Write-
Warning
Exemple
Une formation
Une meilleure cohérence pour le
traitement des redirections
En utilisant le bon flux, vous pourrez
mieux rediriger les flux
Intérêt
Une formation
C'est grâce aux différentes Cmdlets
Write-*
Comment faire pour utiliser
le bon flux ?
Write-Output
Une formation
John Mike
Une formation
Write-Output
Write-Output permet d'envoyer un
message dans le flux de sortie
standard 1 et d’envoyer un objet à
travers le pipeline
Write-Error
Une formation
John Mike
Une formation
Write-Error
Write-Error permet d'écrire des
messages d'erreur dans flux d'erreur 2
Write-Warning
Une formation
John Mike
Une formation
Write-Warning
Write-Warning permet d'écrire des
messages d'avertissement dans le flux
d'avertissement 3
Write-Verbose
Une formation
John Mike
Une formation
Write-Verbose
Write-Verbose permet d'écrire des
messages verbeux dans le flux 4
Une formation
Pour que les messages verbeux
s'affiche à la console, le paramètre
Verbose ou la variable de préférence
$VerbosePreference doivent être
activés
Write-Verbose
Une formation
Permet de commenter chaque étape
d'un traitement
Intérêt de Write-Verbose
Une formation
Si vous créez une fonction avec
plusieurs étapes, il est préférable
d'utiliser Write-Verbose pour
commenter chaque étape du
traitement
Exemple
Write-Debug
Une formation
John Mike
Une formation
Write-Debug permet d'écrire des
messages de débogage dans flux de
débogage 5
Write-Debug
Une formation
Pour que le message de debug soit
affiché à la console, le paramètre
Debug ou la variable de préférence
$DebugPreference doivent être
activés
Write-Debug
Write-Information
Une formation
John Mike
Une formation
Write-Information permet d'écrire des
messages d'information dans le flux
d'information 6
Write-Information
Write-Host
Une formation
John Mike
Une formation
Write-Host envoie directement les
sorties à la console PowerShell
Possède plusieurs paramètres
permettant de personnaliser la sortie
Write-Host
Conclusion sur
les différents flux
Une formation
John Mike
Une formation
Séparation des flux en fonction du
type de message
Utilisez toujours le bon flux en
fonction du type de message à
envoyer
Conclusion
Une formation
N'utilisez jamais Write-Host pour
écrire un message d'erreur mais
utilisez plutôt Write-Error
Exemple à ne pas faire
Introduction aux Jobs
Une formation
John Mike
Une formation
Les Jobs permettent d'envoyer un
traitement qui prend beaucoup de
temps en arrière plan
Définition
Une formation
Lorsque vous exécutez une action,
votre console PowerShell est bloquée
en attendant la fin du traitement
En envoyant un traitement en arrière
plan, vous récupérez directement la
main sur la console PowerShell
Intérêts
Une formation
Vous n'avez plus besoin d'attendre la
fin d'un traitement pour lancer un
autre traitement
Vous pouvez exécuter plusieurs
traitement en parallèle
Intérêts
Une formation
Start-Job
Get-Job
Receive-Job
Stop-Job
Wait-Job
Remove-Job
Cmdlets
Créer et manipuler
les Jobs
Une formation
John Mike
Apprendre à manipuler
les Dates
Une formation
John Mike
HTML
Une formation
John Mike
Une formation
Générer un document HTML
ConvertTo-HTML
Plan
JSON
Une formation
John Mike
Une formation
ConvertTo-JSON
ConvertFrom-JSON
Test-JSON
Plan
CSV
Une formation
John Mike
Une formation
ConvertTo-CSV
Export-CSV
Import-CSV
Plan
XML
Une formation
John Mike
Une formation
ConvertTo-XML
Export-CliXML
Import-CliXML
Plan
Créer un Objet
personnalisé
Une formation
John Mike
Développer une console
d'Administration
Une formation
John Mike
Faire un inventaire des logiciels
installés sur Windows
Une formation
John Mike
Convertir plusieurs fichiers
Word en PDF
Une formation
John Mike
Manipuler Excel avec
PowerShell
Une formation
John Mike
Conclusion
Une formation
John Mike
Une formation
Langage PowerShell
Variables
Types de données
Tableaux
Structures conditionnelles
Structures répétitives (Boucles)
Erreurs & Exceptions
Bilan
Une formation
Fonctions
Ecrire dans les différents Flux / Write-*
Les jobs - Travaux en arrière plan
Manipuler les Dates
Manipuler des données HTML, JSON, CSV,
XML
Objets
Mettre en pratique les acquis
Bilan
Une formation
Prochaine formation
Une formation
www.cloudhorizon.fr
Alphorm.com Formation PowerShell : Niveau Avancé

Alphorm.com Formation PowerShell : Niveau Avancé