0% ont trouvé ce document utile (0 vote)
227 vues28 pages

Introduction à PowerShell pour Windows Server

Le document décrit diverses fonctionnalités et commandes de PowerShell, notamment la gestion des services, des modules, des variables, des types de données, des instructions conditionnelles if/else if/else et switch. Il fournit de nombreux exemples de scripts PowerShell.

Transféré par

Oury
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
227 vues28 pages

Introduction à PowerShell pour Windows Server

Le document décrit diverses fonctionnalités et commandes de PowerShell, notamment la gestion des services, des modules, des variables, des types de données, des instructions conditionnelles if/else if/else et switch. Il fournit de nombreux exemples de scripts PowerShell.

Transféré par

Oury
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Compte-Rendu

Cours PowerShell Préparer par: Baldé


Formateur: Mamadou Oury
Fait le: 04/05/2022

I) Gérer Windows Server 2016 avec PowerShell

3) Comprendre les cmdlets PowerShell

Pour effacer le contenu de notre terminal, on utilise la commande ci-dessous :

On peut utiliser aussi la touche ctrl +l un raccourci clavier pour effacer le contenu du terminal.
Il est important de savoir que toutes les commandes cmdlets sont construites de la même façon avec en
particulier un verbe ou une action, un tiret et un nom. Par exemple pour la liste des services, on utilise la
commande get-service et pour avoir la liste des fonctionnalités de Windows, on utilise la commande
get-windowsfeature.

Pour avoir la liste de toutes les cmdlets, on utilise la commande suivante :


Ensuite, la commande get-alias affiche la liste de tous les alias qui sont présents actuellement dans
l’environnement PowerShell.

L’alias get – alias cls permet de connaître la correspondance de cls.

On peut aussi retrouver un alias à partir d’un nom via :

4) Connaître des astuces sur PowerShell

Une des caractéristiques de Windows PowerShell 5, c’est qu’elle permet de s’auto débrouiller. Quelques
astuces à connaître pour trouver la commande d’aide nécessaire et éviter de faire des erreurs.
Trouver toutes les commandes d’aide qui vont nous parler d’alias via :

Pour avoir l’aide de new-alias, on utilise la commande get-help via :


Pour retrouver des exemples, on procède comme suit :

NB : Windows PowerShell n’est pas sensible à la casse.

On peut vérifier pour voir si on a un alias qui correspond à clear-host via :

L’alias qui correspond à clear-host c’est eff donc, on peut faire un get-alias eff pour retrouver clear-host

5) Utiliser les opérateurs PowerShell


Les cmdlets PowerShell ne sont pas livrées en vrac dans Windows mais elles sont organisées sous forme
de modules.
La commande qui nous permet d’avoir la liste est : get-module

Pour connaître les cmdlets d’un module, on procède comme suit :

On peut voir aussi tous les modules qui sont disponibles via :
Les modules sont chargés dynamiquement.
Tous les utilisateurs AD sont obtenus de la façon suivante :

La commande get-ExecutionPolicy : donne la stratégie qui est en cours sur l’environnement

RemoteSigned : on n’a la possibilité d’exécuter un certain nombre de programme. On appelle ça des


scripts de programme ou de module PowerShell sous réserve que les scripts tirés sous Windows sont
signés ou pas.
On utilise pour ça, soit get –help Get-ExecutionPolicy ou soit, on utilise l’alias help Get-ExecutionPolicy.

Pour avoir plus d’information, on utilise ces différentes commandes ci-dessous

5) Utiliser les opérateurs PowerShell (suite)


On peut retrouver dans PowerShell des opérateurs qui permettent de faire des calculs arithmétiques et
aussi des opérateurs qui permettent de tester l’égalité entre deux nombres.

Test sur des chaînes de caractère :

Avec cet opérateur, il n’y a pas de différenciation entre minuscule et majuscule.


Pour des tests qui intègrent la différence entre minuscule et majuscule, on utilise –ceq à la place de –eq
Test logique : avec des opérateurs –end ou avec –or

Si on veut nier qu’une phrase est vraie, on utilise le point d’exclamation

6) Apprendre la notion de pipeline


C’est une technique qui permet d’enchaîner le résultat des commandes pour que ce résultat soit traité
par la commande suivante.
Du coup, sur PowerShell, on peut formater un résultat pour avoir plus de détaille via :

Cette syntaxe, nous permet d’avoir pour chaque service le formatage sous forme de liste. Le pipe |
permet de récupérer chacun des services et de les traiter individuellement dans la commande suivante.
Pour avoir un affichage sous forme de tableau, on utilise la syntaxe ci-dessous :

L’une des options de cette syntaxe est :

On peut enchaîner différents pipelines, à condition de pouvoir le faire.

II) Ecrire un premier script avec PowerShell


1) Commenter un script PowerShell

PowerShell n’est pas sensible à la gestion de l’espace car il considère que chaque ligne est
indépendante. Mais, nous avons la possibilité de supprimer ou de créer autant d’espace que l’on veut.
Autres façons d’écrire des codes : on peut avoir des blocs entiers de code qui commencent par <# et qui
se terminent par #>.

2) Comprendre la variable particulière

Les services qui commencent par S sont appelés objets du point de vue PowerShell.
Pour pouvoir afficher que les services qui sont arrêtés, on utilise un filtre en sélectionnant uniquement
les services qui ont un statut Stopped.

On filtre tous les services qui sont arrêtés en pipant le résultat via :
Chaque service est représenté par un caractère particulière du nom de $_
Pour les services qui commencent par T, on aura :

La liste des services qui sont arrêtés dont le nom commence par service

3) Déclarer et initialiser les variables

Une variable est une petite zone de mémoire dans laquelle, on donne un nom et qu’on peut utiliser
dans notre script.

Ensuite, pour espacer un nom, on peut créer une variable via :

Pour le nommage de la variable, on peut utiliser aussi la notation polonaise inversée $ + l’objet +
l’attribut via :
4) Découvrir Windows PowerShell ISE

On peut mettre ces cmdlets dans des scripts. Un script PowerShell est un fichier texte avec une
extension .ps1. Nous avons une sécurité dans Windows qui font que les scripts PowerShell y compris les
scripts locaux ne peuvent pas s’exécuter. Dans ce cas, on doit connaître la stratégie de notre
environnement via la commande ci-dessous :

Du coup, pour exécuter nos scripts, on doit se mettre en mode RemoteSigned.

5) Manipuler les objets

Windows PowerShell fournit un environnement de ligne de commande baser sur le modèle objet. C’est
une notion qui rend un peu plus délicat la compréhension des commandes. En effet, les commandes
renvoient en général un objet et non pas une chaîne de caractère. Par définition, un objet est
caractérisé par ses propriétés, ses colonnes etc…
Il a aussi des méthodes et une méthode c’est une action qu’on peut appliquer sur l’objet. Par
exemple un service peut être arrêté.
Pour connaître toutes les propriétés et méthodes, on utilise la commande ci-dessous
Pour renvoyer les informations contenues dans Name et RequiredServices, on procède comme suit :

On peut voir les objets renvoyés par la commande ci-dessus via :

Sort-Object est une autre cmdlete qui permet de trier les différents objets. Pour trier le status qui est
démarré ou arrêté, on utilise la syntaxe ci-dessous :

Dans l’ordre inverse, on utilise –descending dans la syntaxe via :

III) Manipuler les variables et les types de données

1) Découvrir les types de données

On n’a deux variables qui sont définis à savoir $personneNom et $personneAge. La première variable
contient une chaîne de caractère appelée string et la seconde est de type entier (int).
Il faut savoir qu’un type de donnée permet de caractériser une donnée comme par exemple un nombre
ou une chaîne de caractère.

2) Faire une conversion explicite

Pour afficher le double de l’âge de la personne, on va créer une variable du nom de $personne
AgeDouble.

Résultat après l’exécution du script est : Bonjour Alice, le double de notre âge est 3535 ans.
Etant donné que ce n’est pas le résultat que je m’attendais, pour résoudre ce problème, on indique
qu’on veut convertir via :

10 : c’est pour indiquer la base décimale.


Du coup, notre résultat sera de : Bonjour Alice, le double de cotre âge est 70 ans
Ça aurait été plus simple si j’avais mis [int] à la place de [string].

3) Typer une variable

Faire en sorte que nos données soient de type précis. On va prendre l’exemple sur $personneNom. Pour
ça, on procède comme suit :

Mettre Bob chaîne de caractère dans une valeur [int] n’est pas adéquat, c’est pourquoi une erreur sur la
partie du script.
Le string accepte l’ensemble de valeur très large c’est pourquoi, je n’ai pas eu de problème sur la ligne
$personneNom=77.
IV) Connaître les instructions

1) Utiliser l’instruction conditionnelle

Le script Windows PowerShell version 5 est constitué d’instruction. Les instructions peuvent être
rassembler dans un bloc d’instruction symbolisé par une paire d’accolade.
Notre première instruction a manipulé est la condition if.
Affichage d’un message personnalisé en fonction de l’âge : pour ça, il faut faire attention à la logique,
soit on affiche un message ou soit, on affiche plusieurs.

En ayant 30 ans, le script affiche comme message :

 On peut rajouter des conditions complexes


 On peut avoir plusieurs lignes d’instruction
 Pour atteindre le fait d’avoir un seul message, il va falloir utiliser une variante de cette
instruction.
2) Manipuler l’instruction IF ELSE IF

Si, on veut avoir qu’un seul message concernant l’âge, on peut procéder comme suit :

ELSEIF : est une instruction qui signifie, si la condition précédente est fausse et si la condition suivante
est vraie, alors, on exécute les instructions qui se trouvent dans le bloc d’instruction.

ELSE : si toutes les conditions précédentes sont fausses alors on peut utiliser cette instruction.
Au-delà de 35, on aura :

3) Pratiquer l’instruction SWITCH


L’objectif c’est de nous montrer comment transformer une suite d’if qui sont imbriquées en une
instruction switch dans laquelle on peut tester nos différentes valeurs notamment en utilisant la variable
particulière qui est $_

Break : l’instruction en cours s’arrête dès que la valeur est atteinte et le ; indique à PowerShell que
l’instruction est terminée.

4) Formater les chaînes de caractère

Pour avoir l’âge qui apparaît avec une virgule et deux chiffres après, on rajoute {1 : N2}.
V) Découvrir les tableaux
1) Maîtriser les tableaux

Dans la version 5 de Windows PowerShell, les tableaux permettent de simplifier l’utilisation des
variables lorsque celles-ci sont nombreuses et du même type.
Avec les tableaux, on peut faire des opérations masses ou des opérations simples comme par exemple,
le nombre d’éléments qu’on a dans le tableau.

En faisant, une petite mise en forme :

On peut mettre le $ juste avant ($ville.Count) mais ce n’est pas une obligation.
On peut appeler un élément particulier grâce à sa position. Pour ça, on le met entre crochet par
exemple si c’est le deuxième élément qu’on veut, on met [1] si la numérotation commence par zéro.
Déclaration et initialisation d’un tableau vide :

En spécifiant les pays, on obtient :

2) Utiliser une boucle for dans un tableau

L’instruction FOR permet de faire des itérations sur un bloc de code ou dans un tableau durant un
nombre prédéterminé de fois ou jusqu’à ce que le mot clé break soit rencontré comme dans l’exemple
avec l’instruction switch.
La syntaxe de FOR est très simple mais très efficace. En affichant la valeur de chaque ville, en utilisant le
bloc FOR, on procède comme suit :
$i : c’est pour faire des boucles de différents niveaux
$i -le = inférieur ou égale au nombre d’éléments du tableau -1
On peut utiliser lenght à la place de count.
On doit incrémenter la valeur de i via $i = $i +1, si non, elle ne bougera jamais.

3) Itrer avec la boucle forEach

ForEach permet d’énumérer uniquement les valeurs d’un tableau. Il permet d’énumérer sans être obligé
de passer par l’utilisation d’une variable intermédiaire etc…

Chaque élément va représenter une des valeurs du tableau ville.

4) Manipuler les éléments d’un tableau

Si on n’est pas obligé de manipuler chacune des valeurs, il suffit d’afficher le contenu du tableau en
appelant simplement sa variable.
Dans ce cas, on va appeler la variable ville via :
Pour ajouter une valeur à un tableau, on peut utiliser la notation suivante : $ville += ‘’Angers’’ via :

On peut changer aussi une valeur existante : si on veut avoir Nice à la place de Marseille, on procède
comme suit : $ville =[3] = ’’Nice’’

Effacer les valeurs d’un tableau : pour ça, on fait appel à la méthode $ville.clear()
Vérifier si une valeur est présente ou pas à l’intérieur d’un tableau : par exemple, on veut savoir si à l’in-
térieur de ville, la valeur paris est comprise dans le tableau
En mettant, les autres lignes en commentaires, on obtient un résultat plus claire.

Pour voir si on n’a la valeur de Lille, on remplace Paris par Lille via :

Sans savoir la valeur précise, on peut utiliser l’opérateur like via :


Pour avoir que la première ville dans une liste de ville qui commence par L, on procède comme suit :

Pour avoir que le dernier, on utilise last

On peut savoir aussi les propriétés et les méthodes qui existent avec Get-Member via :

VI) Fonction
1) Créer une fonction
Les fonctions permettent de regrouper des opérations liées à un traitement précis. Elles permettent
aussi de rationaliser les scripts PowerShell en regroupant justement les différentes instructions qui
doivent s’exécuter.
Pour la création d’une fonction, on procède comme suit : on indique le mot clé fonction, ensuite, on
indique le nom et par la suite mettre les traitements qui vont s’exécuter :

On peut appeler la fonction via :

Modification et enregistrement d’un script : on rajoute un point sur le message de bienvenu.


Après, pour voir apparaître le point lorsqu’on appelle la fonction, on doit à nouveau exécuter le script et
appeler la fonction par la suite afin de voir le point apparaître.

2) Structurer une fonction

On peut bénéficier d’autres paramètres notamment des paramètres qui peuvent demander à nos
utilisateurs, soit confirmer les opérations qu’on fait, soit pour produire les informations supplémentaires
lors du débogage. Pour ça, on procède comme suit en introduisant l’accolade ouvrante via :
1ère possibilité :
2ème possibilité : structurer nos programmes de façon à introduire les blocs logiques via :

En ajoutant des couleurs aux blocs, nous obtenons :

3) Suivre le déroulement d’une fonction


Si, on veut suivre le déroulement du programme, dans ce cas, on procède comme suit :

Tous les commentaires mis dans le script sont affichés dans le résultat et en plus, ils sont valorisés.

4) Valider les paramètres d’une fonction


Pour remédier à cette situation, on rajoute dans le script le mot parameter et indiquer que le paramètre
en dessous est obligatoire via Mandatory en anglais.

Si on veut que l’âge soit entre 7 et 77 ans de façon arbitraire, on rajoute dans le script plus précisément
au niveau de l’âge le paramètre de validation via :
Si on procède de cette façon, on obtient aussi :

En mettent 35 comme âge, on obtient :

On peut le faire aussi sur la forme ci-dessous, sans nommer les arguments :

La façon dont on fournit les arguments ne va du tout influencer les contrôles qui ont lieu. Les contrôles
auront systématiquement lieu.

Exemple avec les arguments nommés :

On peut utiliser les alias pour remplacer le nom d’un paramètre, pour ça, on va créer un Alias via :

5) Gérer les erreurs d’une fonction


Pour gérer cette situation, on introduit un bloc dans le script afin de gérer les erreurs potentielles. Le
bloc s’appelle try catch finally.
Try : j’essaie d’exécuter mon instruction
Le bloc finally est facultatif.

6) Déboguer une fonction

Ajout d’une nouvelle instruction qui permet de suivre à la trace ce qui se passe.
Le double chevron >> veut dire qu’on est en mode débogage.
On peut volontairement rajouter des points d’arrêts sur une ligne grâce au menu déboguer.

7) Créer l’aide d’une fonction

Elle peut être générer automatiquement à partir de certains commentaires d’une fonction ou même
d’un script en entier PowerShell.
Dans le cas d’une fonction, on doit créer un bloc de commentaire et à l’intérieur du bloc, on doit utiliser
des mots clés par exemple le synopsis. Le synopsis indique à l’utilisateur le rôle de notre fonction,
ensuite mette pour chaque paramètre, le rôle du paramètre, possibilité de donner un exemple
(comment utiliser notre fonction), avoir d’autres mots clés comme par exemple des liens vers un site.

Possibilité de faire des liens sur des sites web quelconque :


Une fois qu’on appelle la fonction, nous aurons : le résumé, la syntaxe, la description et le lien.
Possibilité d’utiliser l’example via :

On peut aussi avoir une aide détaillée via :

Vous aimerez peut-être aussi