Vous êtes sur la page 1sur 46

Déroulé

Pourquoi les scripts


Historique PowerShell
Documentation PowerShell
C’est quoi un script ?
Objets
La console PowerShell
Les variables
Quelques opérateurs
Boucle While (tant Que)
Boucle Do-Until (faire jusqu’à)
Boucle For

Formation professionnelle des adultes 1


Déroulé
La condition if
La condition if else
Opérateurs logiques
Référence sur internet

Formation professionnelle des adultes 2


Pourquoi les scripts
Permettre de gagner du temps en automatisant des tâches longues
et/ou fastidieuses qui doivent être répétées.
Ex: création de comptes utilisateurs sur un serveur.

Les scripts permettent de supprimer les erreurs induites par un


traitement manuel ➔ augmentation de la qualité de service à
travers de bonnes pratiques au sens ITIL (Information Technology
Infrastructure Librairy).

Formation professionnelle des adultes 3


Pourquoi les scripts

Formation professionnelle des adultes 4


Historique PowerShell
Vers 2004-2005 Microsoft est conscient
des limites de son système d’exploitation
basé quasi exclusivement sur l’interface
graphique.
Bill Gates débauche Jeffrey Snover de
chez Digital Digital Equipment
Corporation (DEC) pour mettre au point
un langage script permettant la gestion
des systèmes d’exploitation Windows.
Formation professionnelle des adultes 5
Historique PowerShell
La 1e version sort en 2006.
Depuis, tous les produits de la gamme
System Center sont totalement
administrables avec PowerShell.
Aujourd’hui, des éditeurs tels que
VMware, Citrix, HP, IBM, NetApp
proposent des modules ou des snap-ins
pour gérer leurs logiciels ou leurs
matériels via PowerShell.
Formation professionnelle des adultes 6
Historique PowerShell
A partir de la version 6.0 PowerShell est
multiplateforme.
On peut l’installer sous Linux et Mac OS.

Ceci est possible grâce au « portage » du


Framework .NET avec notamment une
version open source appelée .NET Core.

Formation professionnelle des adultes 7


Historique PowerShell
Un framework est un ensemble d’outils et
de composants logiciels formant un
canevas (squelette de programme).
Il est souvent fourni sous la forme d’une
bibliothèque logicielle.

Les commandes CMD sont utilisables à


partir de PowerShell.

Formation professionnelle des adultes 8


Historique PowerShell
Les commandes PowerShell sont conçues
sur le même modèle car elles héritent
toutes de la même classe d’objets.

Formation professionnelle des adultes 9


Historique PowerShell
La console PowerShell possède une aide
en ligne.
Pour plus de renseignements, consulter la
page
Prise en charge de l’aide en ligne

Formation professionnelle des adultes 10


Documentation PowerShell
Chapitre 2 – Le système d’aide

Documentation en ligne pour


l’apprentissage de PowerShell
documentation PowerShell 5.1

Formation professionnelle des adultes 11


C’est quoi un script ?
Simple fichier texte dans lequel
s’enchaînent toutes les instructions qui le
composent.
Un script n’est pas compilé (contrairement
aux langages de programmation).
Compiler consiste à transformer en un
binaire directement exécutable par la
machine.

Formation professionnelle des adultes 12


C’est quoi un script ?
Comparé à un langage de programmation,
il faut peu d’instructions pour arriver à
faire la même chose ou des opérations
similaires.
Le code source est toujours accessible.

Formation professionnelle des adultes 13


Objets
PowerShell manipule des objets construits
avec le Framework .NET.

Un objet représente un concept, une idée


ou toute entité du monde physique,
comme une voiture, une personne ou
encore une page d'un livre.

Formation professionnelle des adultes 14


Objets
Un objet est définit par des attributs qui
décrivent sa structure interne.
Les objets communiquent entre eux par le
biais de messages appelés méthodes.
Les attributs et les méthodes sont
« cachés », ils forment une boîte noire.
C’est le principe d’encapsulation.

Formation professionnelle des adultes 15


Objets
La classe décrit la structure interne des
données et elle définit les méthodes qui
s'appliqueront aux objets de même
famille (même classe) ou type. Elle
propose des méthodes de création des
objets dont la représentation sera donc
celle donnée par la classe génératrice.

Formation professionnelle des adultes 16


Objets
Les méthodes sont des procédures ou
fonctions destinées à traiter les données.
Les méthodes acceptent donc
des arguments et peuvent renvoyer
des valeurs.

Formation professionnelle des adultes 17


Objets

Formation professionnelle des adultes 18


La console PowerShell
Touches Description
[Tab]/[Maj][Tab] Réalise la complétion automatique d’un
chemin, nom de commande, paramètre
ou une valeur de paramètre (si le type
est une valeur Enum).

[Echap] Efface la ligne de commande en cours


de frappe.

[Flèche en haut]/[Flèche en bas] Fait défiler l’historique des commandes


déjà frappées.

[Flèche à droite]/[Flèche à gauche] Déplace le curseur sur la ligne de


commande courante.

Formation professionnelle des adultes 19


La console PowerShell
[Ctrl][Flèche à droite] Déplace le curseur vers la droite en passant
d’un mot à l’autre sur la ligne de commande.

[Ctrl][Flèche à gauche] Déplace le curseur vers la gauche en passant


d’un mot à l’autre sur la ligne de commande.

[Début] Ramène le curseur au début de la ligne de


commande.

[Fin] Envoie le curseur à la fin de la ligne de


commande.
[Ctrl] C Met fin à l’exécution de l’instruction courante.

[Ctrl][Pause] Met fin à l’exécution de la console.

Formation professionnelle des adultes 20


Les variables
Déclarer une variable sans préciser son type :
$variable = valeur
Exemple : $var1 = 0

$var1 = $var1 + 5
Cette instruction s’interprète : nouvelle valeur de $var1 égale ancienne valeur de
$var1 à laquelle on additionne 5

Déclarer une variable en précisant son type :


[type]$variable = valeur
Exemple : [int]$VarNumerique = 0 crée la variable appelée $VarNumerique de
type entier.

Formation professionnelle des adultes 21


Les variables
Type Description
Int, Int32, Int64 Représente les entiers dans une plage comprise
entre -2 147 483 648 et 2 147 483 647 inclus.
Le type de données int est stocké comme un
entier de quatre octets (32 bits).

Double Représente les nombres à virgule aussi grands


308
que 10 (positifs ou négatifs), avec une précision
-323
sur 15 chiffres, et aussi petits que 10 (64 bits).

Char Représente n’importe lequel des


65 536 caractères Unicode sur deux octets (16
bits).
String Représente une chaîne sous forme de suite de
caractères Unicode.
Boolean Représente une valeur booléene
(true ou false).
Array Représente un tableau contenant de multiples
valeurs. Un tableau peut contenir des données de
types différents.
Object, PSObject, PSCustomObject Représente un objet généralement personnalisé.

Formation professionnelle des adultes 22


Quelques opérateurs

Opérateur Signification
-eq Égal.
-lt Inférieur à.
-gt Supérieur à.
-le Inférieur ou égal à.
-ge Supérieur ou égal à.
-ne Différent de.

Formation professionnelle des adultes 23


Boucle While (tant Que)
While (<condition>)
{
#bloc d'instructions
}

Ecrire et exécuter votre 1er script PowerShell


Prérequis : autoriser l’exécution des scripts.
Par défaut, l’exécution des scripts n’est pas autorisée sur les système
Windows.
La commande Get-ExecutionPolicy permet de voir la stratégie d’exécution
courante.

Ici Restricted montre que ce n’est pas autorisé.

Formation professionnelle des adultes 24


Boucle While (tant Que)

Pour changer le mode :


Ouvrir une console PowerShell en mode administrateur
Exécuter la commande : Set-ExecutionPolicy RemoteSigned

La stratégie RemoteSigned autorise uniquement l’exécution des scripts


locaux ; les scripts en provenance d’un serveur en dehors de votre zone
de confiance intranet tels que ceux venant d’Internet seront quant à eux
bloqués.

Formation professionnelle des adultes 25


Boucle While (tant Que)

Pour écrire le script


Ouvrir la console ISE :
Clic droit sur la fenêtre Windows
Taper ISE
Sélectionner Windows PowerShell ISE

Formation professionnelle des adultes 26


Boucle While (tant Que)

Pour écrire le script

Cliquer sur « Nouveau script

Formation professionnelle des adultes 27


Boucle While (tant Que)

Pour écrire le script


Lors de la saisie d’une commande, une fenêtre contextuel permet de
choisir la commande après que le verbe ai été écrit. Il en est de même
pour les paramètres

Formation professionnelle des adultes 28


Boucle While (tant Que)

Script
Taper le script qui suit.

Les n° de ligne s’incrémentent automatiquement!

Pour exécuter :
Enregistrer le script,
Cliquer sur Fichier, Exécuter ou clique sur l’icône correspondant

Formation professionnelle des adultes 29


Boucle While (tant Que)

Que fait ce script ?

Que fait la commande $nombre-- ?

Formation professionnelle des adultes 30


Boucle While (tant Que)

Modifiez la ligne Write-Host comme indiqué

La ligne devient :
Write-Host $nombre " " -NoNewline
Formation professionnelle des adultes 31
Boucle While (tant Que)

Exécutez le script.

Que constatez-vous ?

Formation professionnelle des adultes 32


Boucle While (tant Que)
Fermer le script précédent et créer un nouveau script.

Copier le script ci-dessous :

Do
{
[int]$var = Read-Host 'Entrez une valeur entre 0 et 10'
}
While( ($var -lt 0 ) -or ($var -gt 10) )

Exécuter sans sauvegarder en tapant successivement les


valeurs 11, 20, 16, 7.

Que constatez-vous dans le fonctionnement de la console ?

Que fait le script ?

Formation professionnelle des adultes 33


Boucle Do-Until (faire jusqu’à)
Effacer le script.

Copier celui-ci :

Do
{
[int]$var = Read-Host 'Entrez une valeur entre 0 et 10'
}
Until( ($var -ge 0 ) -and ($var -le 10) )

Trouver l’icone pour effacer le volet de la console et effacer la


console.
Exécuter sans sauvegarder en tapant successivement les
valeurs 11, 20, 16, 7.

Que fait le script ?

Formation professionnelle des adultes 34


Boucle Do-Until (faire jusqu’à)
Que fait le script ?

Au niveau résultat, y a-t-il une différence avec le script


précédent ?

Quelle est (ou sont) la différence(s) avec le script précédent ?

Formation professionnelle des adultes 35


Boucle For
La boucle For permet d’exécuter un certain nombre de fois un
bloc d’instructions.

Lorsque l’on utilise une boucle For, on indique une valeur de


départ, une condition de répétition de la boucle ainsi que le
pas d’incrémentation, c’est-à-dire la valeur dont elle est
augmentée à chaque itération.

La syntaxe de la boucle For est la suivante :


For (<initial> ;<condition> ;<incrément>)
{
#bloc d'instructions
}

Formation professionnelle des adultes 36


Boucle For
Son fonctionnement est le suivant :

1. L’expression initiale est évaluée, il s’agit en général d’une


affectation qui initialise une variable.

2. La condition de répétition est évaluée.

3. Si la condition est fausse, l’instruction For se termine.

4. Si la condition est vraie, le bloc d’instructions est exécuté.

5. L’expression est incrémentée avec le pas choisi et l’exécution


reprend à l’étape 2.

Formation professionnelle des adultes 37


Boucle For
Exemple :

$tab = 10..17
For($i=0 ;$i -le 7 ;$i++)
{
$tab[$i]
}

$tab = 10..17 : déclare un tableau à une dimension qui contient les nombres
10, 11, 12, 13, 14, 15, 16, 17.
Le 1er élément du tableau a l’indice 0. On l’écrit $tab[0] . Ici, $tab[0] est égal à
10. De même, $tab[1] est égal à 11, $tab[2] est égal à 12, etc.

Que fait ce script ?

Formation professionnelle des adultes 38


La condition if
If (condition)
{
#bloc d'instructions
}

Exemple :

$var = Read-Host "Entrez un caractère"

If ($var -eq 'A')


{
"Le caractère saisi par l'utilisateur est un 'A'"
}

Formation professionnelle des adultes 39


La condition if else
If (($var1 -eq 15) -and ($var2 -eq 18))
{
# Bloc d'instructions 1
}
Else
{
# Bloc d'instructions 2
}

Formation professionnelle des adultes 40


La condition if else
[int]$var1 = Read-Host 'Saisissez un nombre'
[int]$var2 = Read-Host 'Saisissez un nombre'

If ($var1 -ge $var2)


{
"$var1 est plus grand ou égal que $var2"
}
Else
{
"$var1 est plus petit que $var2"
}

Formation professionnelle des adultes 41


Opérateurs logiques
Les opérateurs logiques permettent de vérifier jusqu’à plusieurs
comparaisons dans une même expression. Par exemple : ($var1 -eq $var2) -
and ($var3 -eq $var4) renverra le booléen true si $var1 est égal à $var2 et
que $var3 est égal à $var4, dans le cas contraire la valeur false sera
renvoyée. Voici la liste des opérateurs logiques disponibles :

Formation professionnelle des adultes 42


Opérateurs logiques
Opérateur Signification
-and ET logique
-or OU logique
-not NON logique
! NON logique
-xor OU exclusif

Formation professionnelle des adultes 43


Opérateurs logiques
PS > (5 -eq 5) -and (8 -eq 9)
False
Faux, car 5 est bien égal à 5, mais 8 n’est pas égal à 9.

PS > (5 -eq 5) -or (8 -eq 9)


True
Vrai, car l’une des deux expressions est vraie, 5 est bien égal à 5.

PS > -not (8 -eq 9)


True

PS > !(8 -eq 9)


True

Vrai, car 8 n’est pas égal à 9.

Formation professionnelle des adultes 44


Référence sur internet

https://www.it-connect.fr/powershell-pour-les-debutants-1ere-partie/

Formation professionnelle des adultes 45


Merci

Formation professionnelle des adultes 46

Vous aimerez peut-être aussi