0% ont trouvé ce document utile (0 vote)
435 vues112 pages

Cours - PowerShell

Transféré par

arradilyass6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
435 vues112 pages

Cours - PowerShell

Transféré par

arradilyass6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Power Shell

Formatrice : ZITI ILHAM

1
Introduction
· PowerShell est à la fois un nouveau shell de ligne de commande et un
langage de script. Il a été conçu comme moteur de tâches qui utilise des
applets de commande pour encapsuler des tâches que les utilisateurs
doivent effectuer.

· Dans PowerShell, vous pouvez exécuter des commandes sur des machines
locales ou distantes. Vous pouvez effectuer des tâches comme gérer des
utilisateurs et automatiser des workflows.

2
Lancer PowerShell

Le moyen le plus simple de rechercher PowerShell sur Windows 10 est de


taper PowerShell dans la barre de recherche, comme le montre la figure

Vous avez donc


- une version 64 bits de la console
PowerShell
- PowerShell ISE (environnement de
script intégré),
- une version 32 bits

3
Lancer PowerShell
· Pour lancer Powershell cliquer sur sur le raccourci « Windows PowerShell »

· Pour exécuter PowerShell en tant qu‘utilisateur de domaine et


administrateur local : Relancez la console PowerShell, mais cette fois-ci,
cliquez avec le bouton droit sur le raccourci Windows PowerShell, puis
sélectionnez Exécuter en tant qu’administrateur

4
Lancer PowerShell
· Une fois que vous avez relancé PowerShell en tant qu‘administrateur, la
barre de titre doit indiquer « Administrateur : Windows PowerShell»,
comme illustré à la figure

5
Afficher PowerShell
· Dans PowerShell, il existe plusieurs variables automatiques qui stockent des
informations d‘état. L‘une de ces variables est :

$PSVersionTable

· La sortie fournit des informations sur la version de PowerShell, ainsi que


sur votre plateforme et votre édition

6
· La structure des commandes

7
Les applets de commandes “cmdlet”

· Dans le monde Powershell, les applets de commandes (cmdlet) sont


composées d‘une paire de la forme “verbe”-“nom” destiné à en faciliter
la mémorisation.

8
Les applets de commandes “cmdlet”

· Le résultat renvoie une sorte de tableau avec des entêtes de colonnes, où


chaque ligne représente un élément.

9
Trouver des commandes

· Vous pouvez voir la liste des verbes approuvés en utilisant l‘applet de


commande Get-Verb. Les verbes sont organisés par type d‘activité et par
fonction.

10
Trouver des commandes

Trois applets de commande principales vous permettent de découvrir les


applets de commande existantes et ce qu‘elles font :

· Get-Command : L‘applet de commande Get-Command liste toutes les


applets de commande disponibles sur votre système.

· Get-Help :utilisez la cmdlet de base Get-Help pour appeler un système


d‘aide intégré.

· Get-Member: Quand vous appelez une commande,la réponse est un


objet qui contient de nombreuses propriétés.

11
Rechercher des commandes en utilisant
Get-Command
Avec Get-Command on utilisent des indicateurs pour filtrer :
· Noun : L‘indicateur -Noun cible la partie du nom de la commande.
Autrement dit, il cible tout ce qui correspond à ce qui se trouve après le
trait d‘union (-).Voici un exemple :
Get-Command -Noun NETIPADD*

Cette commande recherche toutes les applets de commande dont la partie


« substantif » commence par NETIPADD

12
Rechercher des commandes en utilisant
Get-Command
· Verb : L‘indicateur -Verb cible la partie du nom de la commande qui est
associée au [Link] pouvez combiner l‘indicateur -Noun et
l‘indicateur -Verb,voici un exemple :

Get-Command -Verb Get -Noun NETIPADD*

13
Get-Help
Une fois que l'on a repéré la commande qui nous intéresse grâce à
Get-Command, on va en toute logique se poser la question suivante :
comment s'utilise cette commande PowerShell ? C'est là
qu'intervient le cmdlet "Get-Help" puisqu'il permet d'obtenir de l'aide.

14
Get-Member

Pour explorer une commande, il y a le cmdlet "Get-Member" et son


alias "gm" qui sont à connaître. Cette commande va permettre d'obtenir
tous les membres d'une commande, c'est-à-dire toutes les propriétés
et méthodes d'une commande.

15
Get-Process

· Get-Process Permet de récupérer la liste des processus actifs sur


une machine.

16
Get-PSDrive

La commande Get-PSDrive permet de récupérer des informations sur


les différents lecteurs du système. Plusieurs types de lecteurs différents
sont remontés par cette commande:
· Les lecteurs de type "FileSystem" correspondant à vos volumes
montés sur votre système, par exemple le volume "C" où Windows
est installé, ou alors un lecteur réseau connecté sur votre machine.
· Les lecteurs de type "Registry" correspondent au Registre Windows,
en l'occurrence les ruches HKCU et HKLM

17
Get-Service

Grâce à la commande Get-Service, nous allons pouvoir récupérer des


informations sur les services présents sur la machine, ainsi que sur leur
état et leur type de démarrage

18
Test-Connection

· L'équivalent de l'éternelle commande "ping", mais à la façon de PowerShell.


Pour réaliser 4 pings à destination d'une machine, on peut spécifier son
adresse IP ou son nom DNS :

· Si l'on veut réaliser seulement 1 ping, ce qui est pratique pour


simplement tester la connectivité vers une machine, on utilisera
-Count suivi du nombre de ping à réaliser :

19
Test-Connection

On peut facilement tester plusieurs hôtes : il suffit de séparer les


cibles par virgule:

20
· Gestion fichier et dossier

21
22
Get-Location
· Afficher le chemin du dossier courant:

· Alias => "Get-Location" = "pwd"

23
Get-ChildItem
· Afficher le contenu du dossier courant:

24
Get-ChildItem
· Alias => "Get-ChildItem" = "ls" = "dir"

25
Set-Location
· Se déplacer dans les dossiers:

· Alias => "Set-Location" = "cd"

26
New-Item
·Créerun fichier vide du nom de "[Link]" dans le répertoire courant:
New-Item -Name "[Link]" -ItemType file

· Pour créer un fichier du nom de "[Link]" dans un autre répertoire comme


par exemple dans "c:\windows", il faut rajouter le chemin dans l'option
"path":
New-Item -path "c:\windows\" -Name "[Link]" -ItemType file

27
New-Item
·Créerun dossier un répertoire du nom de "dossier_de_test":
New-Item -Name "dossier_de_test" -ItemType directory

· Pour créer un dossier du nom de "dossier_de_test" dans un autre


répertoire comme par exemple dans "c:\windows", il faut rajouter le
chemin avec l'option "path":
New-Item -path "c:\windows\" -Name "dossier_de_test" -ItemType directory

28
Remove-Item

·Supprimer un dossier
qui est dans le répertoire courant:
Remove-Item « dossier_de_test »

· Pour supprimer directement un répertoire qui contient des fichiers et des


sous-dossiers sans avoir à confirmer:
Remove-Item "C:\Windows\dossier_de_test" –Recurse

· Alias => "-Recurse" = "-r―


· Alias => "Remove-Item" = "rm"

29
Move-Item
· Déplacer un dossier qui est dans le répertoire courant vers un autre
répertoire:

Move-Item -Path "dossier_de_test" -Destination "c:\Windows\"

· Déplacer un fichier qui est dans le répertoire courant vers un autre


répertoire:

Move-Item -Path "[Link]" -Destination "c:\Windows\"

30
Renam e-Item

· Renommer un dossier:
Rename-Item -Path dossier_de_test -NewName dossier_de_2022

· Renommer un fichier:
Rename-Item -Path [Link] -NewName [Link]

31
C o py-Item
· Copier un dossier vide:

Copy-Item -Path dossier_de_test -Destination c:\Windows

·Copier un dossier avec son contenu, il faut rajouter l'option "-Recurse":

Copy-Item -Path dossier_de_test -Destination c:\Windows -Recurse

· Copier un fichier:

Copy-Item -Path .\[Link] -Destination c:\Windows

·Si le fichier de destination existe déjà, il faut rajouter l'option "-Force":

Copy-Item -Path .\[Link] -Destination c:\Windows -Force

32
Test-Path

Le cmdlet Test-Path sert à tester l'existence d'un élément, généralement


un fichier ou un dossier. Par exemple pour tester l'existence du chemin
"C:\TEMP", on exécutera :

33
· Partager des dossiers

34
Partager des dossiers

Nous allons voir maintenant comment créer un dossier partagé sous


PowerShell. Il faut le faire comme avec l‘interface graphique en 3 étapes :

1. Créez un dossier classique.

2. Créez le partage.

3. Configurez les droits de partage.

35
Créer le partage
· Pour partager le dossier C:\SAUVEGARDE en créant un nom de
partage Sauvegarde et en donnant le contrôle total au
groupe Administrateurs.

New-SmbShare -Name Sauvegarde -Path C:\SAUVEGARDE -FullAccess


Administrators

36
Configurer les droits de partage
Nous pouvons modifier les droits de partage en rajoutant les droits de
lecture à tout le monde en tapant la commande suivante :

Grant-SmbShareAccess -Name Sauvegarde -AccountName "Tout le Monde" -


AccessRight Read

On peut mettre comme droit (AccessRight) :


· Full : contrôle total ;

· Change : modifier ;

· Read : lecture ;
· Custom :personnalisé.

37
Lister les partages
·Pourafficher la liste des partage :
Get-SmbShare

38
Lister les autorisations
·Pourlister les autorisations sur le partage:
Get-SmbShareAccess NomPARTAGE

39
· Définir une adresse IP

40
41
Lister les cartes réseaux
Permet de repérer le numéro d’index de la carte que l‘on souhaite modifier.
Ce numéro sera utile lors de la phase de configuration.
Deux choix s‘offrent à vous :
· Get-NetIPInterface (Lister les interfaces IP)

· Get-NetAdapter (Obtenir les propriétés basiques des adaptateurs réseaux)

42
Configuration d’une nouvelle adresse IP
Par exemple, pour ajouter l‘adresse IP « [Link]/24 » à l‘interface ayant
l’index 12 la commande est :
New-NetIPAddress -InterfaceIndex 12 -IPAddress [Link] -PrefixLength 24
-DefaultGateway [Link]

· InterfaceIndex :Numéro d‘index de la carte à modifier ,il est possible


d‘utiliser à la place -InterfaceAlias suivit du nom de l‘interface si vous
préférez au numéro d‘index)
· IPAddress :Adresse IP à attribuer à la carte
· PrefixLength :Longueur du masque de sous réseau
· DefaultGateway :Passerelle par défaut

43
Configuration d’une nouvelle adresse IP

· Note :Il existe également la commande Set-NetIPAddress,qui permet


de modifier la configuration d‘une IP déjà existante dans les paramètres de
la carte.

44
Activer/Désactiver le D H C P sur une carte

Pour activer/désactiver le DHCP sur une carte utiliser la commande :

Set-NetIPInterface -InterfaceIndex 12 -Dhcp {Enabled/Disabled}

45
Supprimer L’ adresse IP
Si une adresse IP est déjà en place sur la carte, elle ne sera pas écrasée par celle
que nous venons d‘ajouter, il faut donc supprimer l‘ancienne.

Imaginons que sur ma carte d‘index 12, j‘ai une ancienne adresse IP qui est
« [Link]/16 » et que je souhaite la supprimer :

Remove-NetIPAddress -InterfaceIndex 12 -IPAddress [Link] -PrefixLength


16 -DefaultGateway [Link]

46
Ajout d’un D N S

Pour ajouter un serveur DNS « [Link] » sur notre carte


Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses [Link]

Pour la vérification :
Get-DnsClientServerAddress -InterfaceIndex 12

47
Vérification des paramètres

Pour vérifier que la configuration de la carte réseau est correcte, on utilise la


commande suivante :
Get-NetIPConfiguration

48
· Renommer une machine Windows

49
Renommer une machine Windows

Pour renommer le serveur avec Rename-Computer, il suffit de spécifier le


paramètre -NewName, suivi du nom que l'on souhaite, cela donne la
commande suivante :
Rename-Computer -NewName « PC01«

Pour la prise ne charge de la modification il faut redémarrer le serveur :


Restart-Computer

Au redémarrage de la machine, on peut vérifier que le nom est changé grâce à


la commande hostname .

50
Get-WmiObject
· Parametre machine
· Cpu
· Ram D D

51
Bios
Pour récupérer les information du BIOS utiliser la commande :
Get-WmiObject -Class Win32_BIOS

52
Processeur
Pour récupérer les information du Processeur utiliser la commande:

Get-WmiObject -Class Win32_Processor

53
Système
Pour récupérer les information du Système utiliser la commande:

Get-WmiObject -Class Win32_ComputerSystem

54
Système d’exploitation
Pour récupérer les information du Système d‘exploitation utiliser la
commande:

Get-WmiObject -Class Win32_OperatingSystem

55
Espace disque
Pour récupérer les information du Espace disque utiliser la commande:

Get-WmiObject -Class Win32_LogicalDisk

56
· Gestion groupe et utilisateur

57
· Add-LocalGroupMember — Ajouter un utilisateur au groupe local

🞂 Disable-LocalUser — Désactiver un compte d‘utilisateur local

· Enable-LocalUser — Activer un compte d‘utilisateur local

· Get-LocalGroup — Afficher les préférences du groupe local

· Get-LocalGroupMember — Afficher la liste de tous les membres du groupe local

· Get-LocalUser — Afficher les préférences d‘un compte d‘utilisateur local

· New-LocalGroup — Créer un nouveau groupe local

· N ew-LocalUser — C réer un nouveau compte d‘utilisateur local

· Remove-LocalGroup — Supprimer un groupe local

· Remove-LocalGroupMember — Supprimer un membre d‘un groupe local

· Remove-LocalUser — Supprimer un compte d‘utilisateur local

· Rename-LocalGroup — Renommer un groupe local

· Rename-LocalUser — Renommer un compte d‘utilisateur local

· Set-LocalGroup — Modifier les paramètres d‘un groupe local

🞂 Set-LocalUser — Modifier les paramètres de compte d‘un utilisateur local


58
Créer u n utilisateur local
La commande New-LocalUser peut créer les types de comptes d‘utilisateur
suivants :
· Comptes d‘utilisateur locaux Windows
· Comptes Microsoft

· Comptes Azure Active Directory

Note: Lorsque vous créez un compte d‘utilisateur local, ne tapez jamais le mot
de passe en texte simple ; convertissez-le toujours en une chaîne sécurisée à
l‘aide du paramètre AsSecureString ou ConvertTo-SecureString.

59
Créer u n utilisateur local
· Comptes d’utilisateur locaux
$UserPassword = Read-Host -AsSecureString
New-LocalUser "NomUtilisateur" -Password $UserPassword -Description
"test utilisateur "

60
Créer u n utilisateur local
· Comptes Microsoft
New-LocalUser -Name "MicrosoftAccount\SomeAccount@[Link]" -
Description "Microsoft Account"

· Compte local lié à votre Azure A D


New-LocalUser -Name "AzureAD\Utiliateur@[Link]" -Description
"Azure AD Account‖

61
Supprimer u n compte d’utilisateur
Pour supprimer un compte d‘utilisateur local, utilisez le cmdlet Remove-
LocalUser :

Remove-LocalUser -Name NomUtilisateur -Verbose

62
Ajouter un groupe local

Pour créer un nouveau groupe :

New-LocalGroup -Name 'NomGroupe' -Description ‗Description du Groupe'

63
Ajouter des utilisateurs à un groupe local

Pour ajouter un utilisateur (ou un groupe) à un groupe local, utilisez le cmdlet


Add-LocalGroupMember.

Add-LocalGroupMember -Group ‗NomGroupe' -Member (‗utilisateur',‘groupe') -


Verbose

64
Afficher les membres d’un groupe

Pour établir la liste de tous les membres d‘un groupe local particulier :

Get-LocalGroupMember -Group 'NomGroupe'

65
· Manipuler la date et l‘heure

66
Récupérer la date

Pour récupérer la date la commande est :


Get-Date

Remarque : Avec le paramètre Format, nous allons pouvoir le personnaliser en


jouant avec les lettres "m", "d", "y", "h", "s", "f" où la casse est
importante et impacte le résultat retourné.

67
Calculer une date avec AddDays
Pour calculer une date, nous allons utiliser la méthode AddDays() qui
s'applique directement à Get-Date et qui attend un nombre comme valeur. Si
le nombre est positif, le nombre de jours sera ajouté à la date du jour, s'il est
négatif, il sera soustrait et la date calculée sera retournée.

Pour soustraire 90 jours à la date du jour, cela nous donne :


(Get-Date).AddDays(-90)

68
Calculer une date avec AddDays
Exemple:

Ce qui retourne :

69
Modifier la date et l'heure
· La commande Set-Date permet de modifier la date et l'heure sur notre
système.
· Pour utiliser cette [Link] va utiliser le paramètre -Date et
préciser la date et l'heure souhaité[Link]:

Set-Date -Date " 15/05/2022 17:52"

70
Modifier la date et l'heure
· Pour changer seulement la date

Set-Date -Date "27/09/2022"

·De la même façon, on peut ajuster l'heure sans modifier la date :

Set-Date -Date "18:00"

71
· Gestion des paquets

72
Introduction
· PowerShell Package Management vous permet de rechercher, d'installer, de
mettre à jour et de désinstaller des modules PowerShell et d'autres
packages.

· [Link] est la source par défaut pour les modules


PowerShell. Vous pouvez également parcourir le site pour rechercher les
packages disponibles, commander et prévisualiser le code.

73
Trouver un module par nom

Find-Module -Name <Name>

74
Trouver un module par nom

Pour trouver un module qui se termine par DSC par


exemple

Find-Module -Name * D S C

75
Installer/ Désinstaller un module

· Installer un module par nom

Install-Module -Name <name>

· Désinstaller un module
Uninstall-Module -Name <Name>

76
Mettre à jour un module

· Pour mettre à jour un module par nom utilser la commande:

Update-Module -Name <Name>

77
· Les Va r i a b l e s

78
Les variables
Une variable est un emplacement dans la mémoire d'un ordinateur utilisé
pour stocker des données, généralement destinées à être référencées et
manipulées dans un programme.

Les variables dans PowerShell peuvent stocker les résultats des commandes et
des expressions.

Les variables dans PowerShell sont référencées à l'aide du signe dollar $ suivi
d'un nom de variable valide.

79
Lire et Ecrire

80
Write-Host

L'objectif principal de l'applet de commande Write-Host est de produire une sortie pour
l'affichage uniquement (hôte), telle que l'impression de texte en couleur
Read-Host
L'applet de commande Read-Host lit une ligne d'entrée à partir de la console,
Vous pouvez l'utiliser pour demander une saisie à un utilisateur.

-AsSecureString : orsque vous utilisez ce paramètre, la sortie de la cmdlet Read-


Host est un objet SecureString ([Link]).

82
Les opérateurs de comparaison
Égalité
Correspondance
Endiguement
· Les C onditions

87
· Un bloc de structure conditionnelle commence toujours par une
instruction "If" et elle sera éventuellement suivie par une ou plusieurs
instructions Else/ElseIf.

· On peut traduire ces trois instructions :


- If = Si...
- Else = Sinon...
- ElseIf = Sinon si...

On peut avoir une instruction "If" seule mais ce n'est pas possible pour les
instructions Else et ElseIf.
If et ElseIf peuvent inclure une ou plusieurs conditions, alors que Else
n'accepte pas de condition (il s'applique lorsque toutes les conditions sont
fausses).

88
Condition If

· La syntaxe d'une structure conditionnelle If simple est la suivante :

If (condition)
{
# bloc de code (instructions)
}

· La partie "condition" va permettre de tester une ou plusieurs conditions.


Dans le cas où la condition se vérifie, alors le bloc de code sera exécuté.

Ce bloc de code peut contenir un autre If (conditions If imbriquées), une


boucle d'un autre type, ou tout autre commande : il n'y a pas de restriction
à ce niveau-là.

89
Condition If
Exemple : Le script suivant permet de déterminer si une valeur entrée par
l‘utilisateur est la lettre A

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


If ($var -eq 'A')
{
Write-O utput "Le caractère saisi par l'utilisateur est un 'A'"
}

· Le résultat si on entre la valeur A est

· Si on entre la valeur B est

90
Condition If / Else

· À l‘instruction If peut être associée la clause Else. Cette clause permet en


cas de retour d‘une valeur False d‘orienter le traitement vers un second
bloc d‘instructions.

If (condition)
{
# Bloc d'instructions 1
}
Else
{
# Bloc d'instructions 2
}

91
Condition If / Else

Prenons l‘exemple de tout à l'heure, on va ajouter une condition


supplémentaire à cette phrase :Si $var est également à A

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


If ($var -eq 'A')
{
Write-O utput "Le caractère saisi par l'utilisateur est un 'A'"
}
else {
Write-Output "Oups !"
}

92
Condition If / ElseIf / Else

ElseIf est destiné à être utilisé avec If. Il indique que « l‘expression dans cette
construction sera évaluée si l‘instruction If précédente a pour valeur False ».
Comme If, ElseIf peut accepter une expression. Il est donc pratique de
considérer ElseIf comme un if secondaire.

If (condition)
{
# Bloc d'instructions 1
}
ElseIf (condition)
{
# Bloc d'instructions 2
}
Else
{
# Bloc d'instructions 3
}

93
Condition If / ElseIf / Else

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


If ($var -eq 'A')
{
Write-Output "Le caractère saisi par l'utilisateur est un 'A'"
}
Elseif ($var -eq ‗B')
{
Write-Output "Le caractère saisi par l'utilisateur est un ‗B'"
}
else {
Write-Output "Oups !"
}

94
Double condition avec If et -or / -and

· L'exemple précédent à base If/ElseIf/Else a l'avantage de permettre


d'exécuter un bloc de code différent en fonction de si $var= ‗A‘ ou $var =
‗B‘.N ous pourrions avoir besoin d'exécuter le même code que $var soit
égal à ‗A‘ ou ‗B‘.
· Il suffit d'inclure deux conditions à tester dans l'instruction "If" à l'aide -
or ("ou"). Ceci va permettre de tester si l'une des deux conditions est
vraie.
· Si vous souhaitez que les deux soient vraies,vous devrez utiliser -and
(et) :tout en sachant que le mix des deux est possible.
$var = Read-Host "Entrez un caractère"
If (($var -eq 'A‗) -or ($var -eq ‗B'))
{
Write-Output "Le caractère saisi par l'utilisateur est un 'A‗ ou ‗B‘"
}
else {
Write-Output "Oups !"
86
}
Double condition avec If et -or / -and

· Voici un autre exemple avec "-and" où l'on va tester la valeur de deux


variables.

$compteur1 = Read-Host "Entrez le premier numéro"


$compteur2 = Read-Host "Entrez deuxième numéro"
If (($compteur1 -eq 10) -and ($compteur2 -eq 20))
{
Write-Output "Les deux compteurs sont valides !"
}

96
opérateurs de comparaison

Opérateur Définition
-eq est égal à
-ne n'est pas égal à
-gt est supérieur à
-ge est supérieur ou égal à
-lt est inférieur à
-le est inférieur ou égal à

97
· Les Boucles

98
Introduction

· Une boucle est une séquence d'instructions répétée continuellement


jusqu'à ce qu'une certaine condition soit atteinte.

· existe exactement 5 boucles différentes en PowerShell, 4 d‘entre elles sont


issue de .NET et une est une cmdlet, j‘ai nommé: foreach, while, do
while,for et ForEach-Object

99
F O R (Pour)
· En PowerShell, la boucle "For" s'appuie sur la syntaxe suivante :

For (<état initial>;<condition de répétition>;<incrémentation>)


{
<Si la condition est vraie, on exécute ce bloc d'instructions>
}
<Si la condition est fausse, la boucle for se termine et le script continue...>

· Lorsque l'on utilise une boucle for, on suit la logique suivante : on indique
une valeur de départ (état initial), une valeur cible dans la condition de
répétition et on incrémente la valeur à chaque tour de boucle (à chaque
itération) :on peut incrémenter de 1, de 2, de 10, etc... au choix.

10
0
F O R (Pour)
Exemple: On peut se dire que l'on part de la valeur 0 et que, tant que la
valeur est inférieure strictement à 5, on exécute le bloc d'instruction de la
boucle "For", en augmentant de +1 à chaque itération.

for ($i = 0; $i -lt 5; $i ++)


{
Write-Output "La valeur est $i "
}

Ce qui va donner le résultat suivant :

10
1
F O R (Pour)
· Exemple : Imaginons que l'on ait un tableau de chaînes de caractères
(string) et que l'on souhaite exécuter une action sur chaque valeur du
tableau, sans connaître à l'avance le nombre d'éléments du tableau, on peut
s'appuyer sur la propriété Length.
· On va définir la variable $langages et lui attribuer des valeurs (cela pourrait
être dynamique). Grâce à $[Link]

$langages = @("PowerShell","Python","PHP","JavaScript","C-Sharp")
For ($i=0;$i -lt $[Link];$i++)
{
Write-Output "Le meilleur langage de programmation est $($langages[$i])"
}

10
2
ForEach
ForEach a deux significations différentes dans PowerShell. L'un est un mot-
clé et l'autre est un alias pour l' applet de commande ForEach-Object.
Le premier est décrit ici.
Cet exemple montre comment imprimer tous les éléments d'un tableau sur
l'hôte de la console:

$Names = @('Am y', 'Bob', 'Celine', 'David')


ForEach ($Nom in $Names)
{
Write-Host "Hi, my name is $Nom!"
}

94
while (Tandis que)
· Une boucle while évalue une condition et si true exécute une [Link]
que la condition est vraie, l'action continuera d'être effectuée.

while (condition)
{
code_block
}

104
while (Tandis que)
L'exemple suivant crée une boucle qui comptera de 10 à 0

$i = 10
while ($i -ge 0)
{
$i
$i--
}

105
Do-Loops (Faire)
Les Do-Loops sont utiles lorsque vous voulez toujours exécuter au moins
une fois un bloc de code. Une Do-Loops évaluera la condition après
l'exécution du codeblock, contrairement à une boucle while qui le fait avant
d'exécuter le [Link] pouvez utiliser les boucles de deux manières:
· Boucle tant que la condition est vraie:

Do
{
code_block
} while (condition)

· Boucle jusqu'à ce que la condition soit vraie, en d'autres termes, boucle


pendant que la condition est fausse:
Do
{
code_block
} until (condition)
106
Do-Loops (Faire)
· Exemple:
$i = 0
Do {
$i++
"Number $i"
} while ($i -ne 3)

107
ForEach
· Cet exemple montre comment capturer la sortie d'une boucle ForEach:

$Numbers = ForEach ($Nombre in 1..20)


{
$Nom bre # Alternatively,Write-Output $Number
}

$Numbers = @() ForEach ($Number in 1..20)


{
$Numbers += $Number
}

108
ForEach-Object

· L' ForEach-Object fonctionne de manière similaire à l'instruction foreach ,


mais tire son entrée du pipeline.

$object |ForEach-Object
{
code_block
}

$names = @("Any","Bob","Celine","David")
$names |ForEach-Object
{
"Hi, my name is $_!"
}

109
Continuer

L'opérateur Continue fonctionne dans les


boucles For , ForEach , While et Do Il ignore l'itération actuelle de la boucle,
en sautant au sommet de la boucle la plus interne.
$i =0
while ($i -lt 20) {
$i++
if ($i -eq 7) { continue }
Write-Host $I
}

Le résultat ci-dessus produira 1 à 20 sur la console mais manquera le numéro 7.

110
Pause

L'opérateur de break sortira immédiatement d'une boucle de programme. Il


peut être utilisé dans les boucles For ,ForEach ,While et Do ou dans une
instruction Switch .

$i = 0
while ($i -lt 15) {
$i++
if ($i -eq 7) {break}
Write-Host $i
}

111
Reference
· [Link]
else-et-elseif/
· [Link]
· [Link]
paquets
· [Link]
partie/
· [Link]
taches-avec-des-scripts-powershell-sur-windows-server/6527585-
gerez-vos-fichiers-avec-powershell
· [Link]
· [Link]
· [Link]
· [Link]
9782409039645/les-operateurs
112

Vous aimerez peut-être aussi