0% ont trouvé ce document utile (0 vote)
43 vues18 pages

DUBOIS - COLAS - TP2 Powershell

Ce TP de PowerShell présente différents exercices pour se familiariser avec les bases du langage comme les variables, les boucles, les conditions et les providers. Le document détaille de nombreuses commandes PowerShell avec des exemples.

Transféré par

dubois.jean35
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)
43 vues18 pages

DUBOIS - COLAS - TP2 Powershell

Ce TP de PowerShell présente différents exercices pour se familiariser avec les bases du langage comme les variables, les boucles, les conditions et les providers. Le document détaille de nombreuses commandes PowerShell avec des exemples.

Transféré par

dubois.jean35
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

TP de Système

Providers, boucles et tableaux


S5

Édité le 22/01/24 par Romain Colas & Jean Dubois


Romain Colas / Jean Dubois 1- Introduction

Table des matières


1- Introduction.............................................................................................................................3
2- Exercices..................................................................................................................................3
2.1- Les variables.....................................................................................................................3
2.2- Input / output...................................................................................................................5
2.3- Sélection / tris / Pipeline et affichage..............................................................................6
2.4- Les providers...................................................................................................................9
2.5- Les conditions.................................................................................................................12
2.6- Boucles – Do while et while...........................................................................................13
2.7- Boucles For.....................................................................................................................15
2.8- Boucle ForEach..............................................................................................................16
3- Conclusion..............................................................................................................................18

1- Introduction
Ce TP de PowerShell a pour but de nous familiariser avec les commandes de base et les scripts. Nous allons
apprendre à gérer des variables, traiter des entrées/sorties, trier des informations, et utiliser des boucles pour
automatiser des tâches sur notre ordinateur. C'est un moyen pratique de découvrir comment simplifier et
exécuter efficacement des opérations répétitives.

2- Exercices
2.1- Les variables

a) Créer les variables suivantes.

$MyVar1=0
$MyVar2="3"
$MyVar3=$null

Chaque variable nommé de Myvar1..3 possède une valeur comme indiqué dans le sujet.

b) Vérifiez le type de chaque variable.

$[Link]()

$[Link]()

$[Link]()

ESIR option SNR TP2 - SYSTEME 3/18


2- Exercices

Nous avons utilisé la commande un .GetType() pour obtenir le type de valeur comprise dans chacune des
alias.

- $MyVar1 est un Int32

- $MyVar2 est un Str

- $MyVar 3 retourne une erreur car $null est une valeur null et n’a donc pas de type.

c) Trouvez 2 façons d’ajouter 4 à MyVar1.

A travers le cours nous avons trouvé 2 méthodes possible :

$MyVar1 += 4
$MyVar1 = $MyVar1 +4

La variable Myvar1 a maintenant une valeur de 4.

d) Indiquez comment ajouter MyVar2 à Myvar1.

$MyVar1 += [int]$MyVar2

$MyVar1 -eq 7

Pour éviter que la nouvelle valeur intégrer dans $Myvar1 soit une association de str et de int ce qui aurait
retourné une erreur. Nous avons rajouter « [int] » avant la variable.

e) A la l’aide méthode de MyVar1, vérifier qu’elle est égale à 7.

Puis pour vérifier nous voyons si la variable égale a 4+3 et cela nous retourne True.

f) Donner la valeur "un,deux,trois" à MyVar3. Puis découpez la variable en 3 et envoyer le

ESIR option SNR TP2 - SYSTEM 4/18


Romain Colas / Jean Dubois 2- Exercices

résultat dans MyVar2.

$MyVar3=« un,deux,trois »

$MyVar2=$[Link](« , »)

$MyVar2[1]

Nous avons ajouter "un,deux,trois" en str à $MyVar3.

g) A partir de MyVar2, affichez « deux ».

Puis pour éviter de toute affiché en même temps nous avons séparé avec « .split(« , ») dans $MyVar2 qui
devient une liste.

Et nous l’affichons avec la commande $MyVar2[1] car les valeurs commence a 0.

2.2- Input / output

a) A l’aide de la commande « read-host », récupérez une variable « $prenom » en mettant un

petit texte explicatif

$prenom = Read-Host « Entrez votre prénom »

Nous avons demander de rentrer un prénom qui sera intégrer dans la variable $prenom

b) Affichez à l’écran « Votre prénom est : <prenom> »

Write-Host « Votre prénom est $prenom »

Nous avons affiché la variable précédemment intégré dans $prenom

c) Demandez un mot de passe de manière sécurisée, puis affichez le.

$password = Read-Host « Entrez votre mot de passe » -AsSecureString

Write-Host « Votre mot de passe est $password »

ESIR option SNR TP2 - SYSTEME 5/18


2- Exercices

Nous avons créer la variable $password qui va intégrer ce que l’utilsateur va donné car valeur de mot de
passé. Pour rendre cela secret nous pouvons utiliser « -AsSecureString » qui nous donne cela. L’affichage n’est
pas possible.

d) A l’aide d’un pipe, affichez la date en rouge sur fond blanc.

Get-Date | Write-Host -Foregroundcolor Red -Backgroundcolor White

Pour commencer nous récupérons la date et l’heure avec Get-Date puis nous l’écrivons avec Write-Host et
nous la modifions en -Foregroundcolor et -Backgroundcolor.

e) Sur le modèle suivant : "write-host (une autre cmdlet) -option …", affichez la date en bleu sur

fond blanc. A quoi servent les parenthèses ?

Write-Host Get-Date -ForegroundColor Red

Write-Host (Get-Date) -ForegroundColor Red

Comme affiché avec les exemples nous devons mettre les parenthèses pour que cela affiche bien la date en
valeur et non le nom de l’alias.

2.3- Sélection / tris / Pipeline et affichage

a) Lister uniquement les répertoires de « c:\windows »

Get-ChildItem -Path C:\Windows -Directory

ESIR option SNR TP2 - SYSTEM 6/18


Romain Colas / Jean Dubois 2- Exercices

Pour afficher les dossier du répertoire c:\windows nous devons utiliser la commande Get-childItem avec le
chemin et directory pour avoir seulement les dossiers.

b) Ne garder que les propriétés « nom complet », « date de création », « date de dernier accès

en écriture » (aidez-vous de la commande permettant de voir les propriétés et méthodes d’un objet)

Get-ChildItem -Path C:\Windows -Directory |Selct-Object


FullName,CreationTime,LastWriteTime

Nous avons utiliser la même commande que précédemment puis avec Select-Object nous avons demander
sélectionné ce qui a été demandé

c) Trier les par « date de dernier accès en écriture », en affichant le dossier le plus récent en premier

Get-ChildItem -Path C:\Windows -Directory |Sort-Object LastWriteTime -Descending

ESIR option SNR TP2 - SYSTEME 7/18


2- Exercices

Nous avons cette fois ci mis dans l’ordre du dernier écrit en utilisant LasWriteTime Descending .

d) Filtrer le résultat en ne gardant que les répertoires dont le nom commence par « S »

Get-ChildItem -Path C:\Windows -Directory |Where-Objects {$_.Name -like ‘$*’}

Cette fois ci en utilisant | Where-Object avec le nom de la variable actuelle qui commence par S , l’étoile
permet de dire que c’est le premier caratère.

e) Afficher le résultat sous forme de liste

Get-ChildItem -Path C:\Windows -Directory |Format-List

ESIR option SNR TP2 - SYSTEM 8/18


Romain Colas / Jean Dubois 2- Exercices

Pour afficher en liste nous avons retrouver la commande dans le cours numéro 1 « Format-List »

f) Comptez le nombre de résultat

Get-ChildItem -Path C:\Windows -Directory |Where_Objects {$_.Name -like’$*} |Select-


Object FullName,CreationTime,LastWriteTime |Sort-Object LastWriteTime -Descending |
Format-List | Measure

Pour compte cela nous devons ajouter Measure a la commande précédente.

2.4- Les providers

a) Afficher les providers:

La commande Get-PsProvider affiche la liste de tous les fournisseurs PowerShell disponibles.

Get-PsProvider

b) Afficher les variables d’environnements.

ESIR option SNR TP2 - SYSTEME 9/18


2- Exercices

Get-ChildItem Env : | Where-Object {$_.Name -like ‘User*’}

Le Get-ChildItem Env: nous permet d’afficher toutes les variables d’environnement et derrière j’ai rajouté un
where object qui va me permettre d’afficher tous les environnements qui commence par user ce qui m’a permit
d’identifier la variable USERNAME plus facilement.

c)

Write-Host « Bonjour , je suis $($env:USENAME). »

Nous utilisons un Write-Host afin d’afficher le résultat souhaiter et pour afficher le usertp et on a donc prit la
variable d’environnement USERNAME pour afficher l’utilisateur actuel.

d)

$Env:Myvar = « init »

write-host $env:Myvar

$Env:Myvar = « OK ! »

write-host $env:Myvar

La première ligne définit la variable d'environnement 'Myvar' à la valeur "init", la deuxième ligne affiche cette
valeur, ensuite la variable est modifiée pour avoir la valeur "OK !", et finalement cette nouvelle valeur est
affichée.

e)

Get-Item HKCU :

ESIR option SNR TP2 - SYSTEM 10/18


Romain Colas / Jean Dubois 2- Exercices

Cette commande permet d’obtenir des informations sur la ruche 'HKEY_CURRENT_USER' du registre Windows.
Ça affiche le nom de la ruche sans aucun détail supplémentaire sur ses propriétés ou valeurs.

f)

Get-ItemProperty -Path « HKCU:\Environment

La commande est utilisée pour récupérer les propriétés de la variable d'environnement de l'utilisateur actuel
dans le registre Windows. La commande listes les chemins pour diverses variables d'environnement telles que le
chemin d'accès aux applications, les répertoires temporaires, et le chemin ainsi que des informations sur
l'emplacement dans le registre où ces variables sont stockées.

g)

New-ItemProperty -Path « HKCU:\Environment » -Name « myvar2 » - value « 3 »

Une variable d'environnement nommée 'myvar2' est créée avec la valeur '3' dans le chemin 'HKCU:\
Environment' qui est une partie du registre Windows pour l'utilisateur actuel.

ESIR option SNR TP2 - SYSTEME 11/18


2- Exercices

h)

Il suffit de faire la même commande que précédemment mais à la place new- nous mettons set- et nous
changeons la value.

i)

j)

Set-ItemProperty -Path « HKCU:\Environment » -Name « myvar2 » -value « 3 »

$env:myvar2

Remove-ItemmProperty -Path « HKCU:\environment » -Name « myvar2 »

La première commande Set-ItemProperty modifie la valeur de 'myvar2' pour lui attribuer la valeur '3'.

La deuxième commande Remove-ItemProperty supprime la propriété 'myvar2' du chemin spécifié, ce


qui signifie que la variable d'environnement 'myvar2' est supprimée.

2.5- Les conditions

a) Faire un test qui affiche « ok » si la variable mytest est égal à « oui », « pas ok » si elle égal à non et « ???? »
si elle vaut autre chose.

$mytest = « oui »

if ($mytest -eq « oui ») {

Write-Host « ok »

elseif ($mytest -eq « non »){

Write-Host « pas ok »

ESIR option SNR TP2 - SYSTEM 12/18


Romain Colas / Jean Dubois 2- Exercices

else {

Write-Host « ???? »

En utilisant les exemples du cours, nous avons réaliser la fonction suivante -eq ( correspond à = )

b) Avec un switch, créer un « menu à 4 entrées » où un utilisateur choisi une action en saisissant un chiffre

$choice = Read-Host « Choisssez une action (1, 2, 3 ou 4) »

switch ($choice) {

1 { Write-Host « Action 1 sélectionnée » }

2 { Write-Host « Action 2 sélectionnée » }

3 { Write-Host « Action 3 sélectionnée » }

4 { Write-Host « Action 4 sélectionnée » }

default { Write-Host « Action non valide » }

En utilisant l’exemple du cours nous avons effectué un switch a 4 choix et un choix par défaut .

2.6- Boucles – Do while et while

ESIR option SNR TP2 - SYSTEME 13/18


2- Exercices

a) A l’aide d’une boucle « Do-While », réalisé un code qui produit le résultat suivant :

do {

$word = Read-Host « Saisissez un mot (Tapez ‘Exit’ pour sortir) »

$lenght = $word .lenght

Write-host « Votre mot fait : $lenght caractère(s). »

} While ($word -ne « Exit » -and $word -ne « exit »)

Whrite-Host « **fin de la boucle** »

Avec l’exemple du cours nous avons effectué la boucle Do – While.

b) Réaliser la même chose avec une boucle « While ».

$word = « «

while ($word -ne « Exit » -and $word -ne « exit ») {

$word = Read-Host « Saisissez un mot (Tapez ‘Exit’ pour sortir) »

ESIR option SNR TP2 - SYSTEM 14/18


Romain Colas / Jean Dubois 2- Exercices

$lenght = $word .lenght

Write-host « Votre mot fait : $lenght caractère(s). »

Whrite-Host « **fin de la boucle** »

Avec l’exemple du cours nous avons effectué la boucle While à l’aide du code précédent.

2.7- Boucles For

a) boucle for de 0 à 10

for ($i = 0 ; $i -le 10 ; $i++) {

Write-host $i

Le

1.
Le script est une boucle for, le i va de 0 à 10 en s’incrémentant de 1 à chaque fois et pour chaque
bouclage nous affichons le i. Donc nous avons un affichage de 0 à 10.

b) Affichage des nombres pairs avec une boucle for

ESIR option SNR TP2 - SYSTEME 15/18


2- Exercices

Write-Host « Nombres pairs entre 0 et 10 »

for ($i = 2 ; $i -le 10 ; $i += 2) {

Write-host $i

De base nous avions voulu afficher les nombres pairs avec une condition en ajoutant une conditions ou nous
affichons les chiffres qui renvoit 1 en faisant un modulo 2 mais ça nous affichait le 0 alors que sur l’exemple il n’y
avait pas le 0. Donc nous avons fait une boucle allant de 2 à 10 en affichant les chiffres à chaque ajout de 2.

c) Afficher les chiffres et nombres en partant de 35 et en retirant 3 à chaque fois jusqu’à une valeur inférieur à 3

for ($i = 35; $i -ge 3; $i -= 3) {

Write-host $i

Donc la boucle commence à 35 et jusqu’à que ça soit plus grand que 3 nous retirons 3 au i et nous affichons le i

2.8- Boucle ForEach.

ESIR option SNR TP2 - SYSTEM 16/18


Romain Colas / Jean Dubois 2- Exercices

a) En utilisant une boucle Foreach, avec la méthode en tant que mot clé, affichez les « noms » en majuscule
des fichiers et des dossiers de votre répertoire courant.

$items = Get-ChildItem

foreach ($item in $items) {

$itemName = $[Link]()

Write-host $itemName

Le script utilise une boucle foreach pour itérer sur chaque élément récupéré par Get-ChildItem,
assigne le nom de chaque élément en majuscules à une variable ItemName, puis affiche ce nom avec Write-
Host. La variable $item représente l'élément courant dans la boucle.

b) Même question que le a), mais un utilisant la méthode foreach avec un pipeline

(Get-ChildItem) | ForEach-Object {

$_Name.ToUpper()}

ESIR option SNR TP2 - SYSTEME 17/18


2- Exercices

En reprenant le script précédent nous utilisons cette fois la méthode foreach avec un pipeline

3- Conclusion
En travaillant ensemble sur ce TP, nous avons consolidé notre compréhension de PowerShell. Nous avons
abordé la gestion des variables, les entrées/sorties, le tri et la sélection d'informations, ainsi que l'utilisation de
boucles pour l'automatisation des tâches.

ESIR option SNR TP2 - SYSTEM 18/18

Vous aimerez peut-être aussi