• 4 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 28/06/2022

Utilisez les commandes de base de PowerShell

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Bienvenue dans ce cours ! Nous allons y découvrir ensemble l’utilisation de PowerShell, afin de créer des scripts pour automatiser des tâches.

Lavachette, la société de maroquinerie dans laquelle vous travaillez
Lavachette, la société de maroquinerie dans laquelle vous travaillez
Votre environnement de travail pour ce cours
Votre environnement de travail pour ce cours

Une fois que tout est prêt, vous pouvez passer à la suite. Vous utiliserez un réseau indépendant pour ne pas perturber le fonctionnement de votre réseau local.

Découvrez le PowerShell

Allumez votre serveur, il doit maintenant ressembler à ceci au démarrage (le mot de passe administrateur est Pwd2019) :

Ecran de démarrage du Windows Serveur
Écran de démarrage du Windows Server

Votre serveur doit maintenant ressembler à ceci au niveau du gestionnaire de serveur :

Le gestionnaire de votre serveur doit ressembler à ceci
Le gestionnaire de votre serveur doit ressembler à ceci

Le DOS, ancêtre du PowerShell

Alors, pour ceux comme moi qui ont connu les débuts de l’informatique, PowerShell est le successeur des interfaces en ligne de commande DOS/Windows fournies par :

  • command.com (plus connu sous le nom de MS-DOS) de Windows ME, Windows 98 et leurs prédécesseurs ;

  • cmd.exe de Windows NT depuis 1993.

Et il faut savoir que l’on peut toujours utiliser MS-DOS, même sur un PC avec Windows 10 ou avec Windows 2019 Serveur. Il suffit de cliquer sur Invite de commande dans le menu Démarrer de la barre des tâches de Windows :

Bouton Invite de Commande
Bouton Invite de commande

Vous pouvez également taper "cmd" dans la barre de recherche.

Tada, voici la bête :

L'invite de commande au démarrage
L'invite de commande au démarrage

Bon super, génial, je me retrouve avec que du texte, mais j’utilise un système d’exploitation graphique, non ?

Il faut savoir qu’au tout début de l’informatique, dans les années 1980, MS-DOS (première version le 12 août 1981) était le système d’exploitation par défaut de tout PC. On n’avait pas d’interface graphique (GUI : Graphical User Interface) ! Les premiers systèmes d’exploitation avec interface graphique ne sont apparus qu’en 1985 (Windows 1.0), donc on a utilisé pendant de nombreuses années un système d’exploitation en ligne de commande.

Pourquoi utilise-t-on un langage en ligne de commande, alors que l’interface graphique est plus agréable ? 🤔

Eh bien, nous verrons justement dans ce cours l’utilité de ce mode de fonctionnement. Cela permet d’aller plus vite et d’automatiser certaines tâches !

Bon super, c’est génial MS-DOS, mais je veux un cours sur PowerShell !

Patience, je vous explique.

Utilisez le PowerShell

Bon alors, c’est quoi PowerShell ?

Pour utiliser PowerShell, vous pouvez procéder de plusieurs manières. Par exemple, il est tout à fait possible de lancer PowerShell depuis l’invite de commande MS-DOS, comme je vous ai montré précédemment, en tapant powershell :

L'invite de commande en mode PowerShell
L'invite de commande en mode PowerShell

Tada, si vous regardez votre prompt, il a changé, il est passé de  C:\Users\Administrateur> à  PS C:\Users\Administrateur>. Et c’est toute la différence, je suis maintenant en mode de ligne de commande PowerShell.

Autre possibilité pour lancer PowerShell, et c’est celle que nous utiliserons : cliquer sur Windows PowerShell dans le menu Démarrer de la barre des tâches de Windows :

Lancement de Windows PowerShell
Lancement de Windows PowerShell

Et vous vous retrouvez en mode PowerShell. Bon, l’écran est bleu, mais il marche de la même façon que si l’on était passé par l’invite de commande ; c’est une manière plus agréable de savoir que vous êtes en mode PowerShell (vous pouvez passer également en mode de commande MS-DOS en tapant cmd).

La console Windows PowerShell
La console Windows PowerShell

Vous pouvez aussi utiliser Windows PowerShell ISE (comme dans le cours Prenez en main Windows Server) si vous le souhaitez, car cela vous permet d’avoir la liste des commandes PowerShell. Dans un premier temps, nous allons voir les commandes de base de PowerShell, donc nous allons privilégier la console PowerShell. Nous utiliserons donc PowerShell en dur, car cela vous permettra de connaître les commandes par cœur. N’hésitez pas à utiliser l’autocomplétion comme sur Linux en commençant à taper une commande et en appuyant sur la touche tabulation. L’autocomplétion est très pratique, car on peut taper très vite et cela permet de ne pas faire d’erreur de syntaxe !

Tapez par exemple “Get-H” puis sur Tabulation, la commande  Get-Help  s’affiche.

Commande Get-Help sur le Windows PowerShell
Commande Get-Help sur le Windows PowerShell

Et voici notre première commande sous PowerShell ; bon, vous vous en doutez, cette commande nous permet d’avoir une aide sur d’autres commandes. Testez-la ! 

C’est quoi, le Powershell ?

Bon, c’est cool, on a parlé du prédécesseur de PowerShell et on sait maintenant le lancer. Mais qu’est ce que c’est, PowerShell ?

PowerShell est un langage de script fondé sur la programmation orientée objet. Le logiciel PowerShell (fichier exécutable  powershell.exe  ) est l’interpréteur de l’interface en ligne de commande de l’environnement de développement Windows PowerShell

Les commandes PowerShell sont constituées d’un verbe ou préfixe et d’un nom, séparés par un tiret. Elles peuvent être suivies de paramètres, on les appelle des commandlets ou cmdlets (command applets en anglais ou phrases en français).

Le préfixe de cmdlet est appelé verbe car il détermine l’action à effectuer sur les entités désignées dans la phrase. Voyons-en quelques-uns des plus utiles :

  • Add  permet d’ajouter des données ou informations sur le nom qui le suit ;

  • Get  permet d’obtenir des données ou informations sur le nom qui le suit ;

  • Read  permet de lire des données ou informations sur le nom qui le suit ;

  • Clear  permet de réinitialiser l’affichage de l’interface ;

  • Importet  Export  permettent d’importer/exporter des fichiers de commande ou des Alias ;

  • New  permet de créer de nouveaux objets ou variables ;

  • Set  permet de définir des données ou informations sur le nom qui le suit ;

  • Write  permet de d’écrire des données ou informations sur le nom qui le suit et peut agir comme le compte rendu d’une commande.

PowerShell est plus proche des langages de script comme Perl que de langages Shell comme Bash, il n’y a aucune ressemblance entre le langage PowerShell et le Batch des fichiers .BAT de DOS/Windows. Le but de Microsoft est de faire un langage de script complètement intégré, avec autant de fonctionnalités que celles qui existent sous Unix (ou Linux), et avec le même niveau de sécurité.

Lancez quelques actions de base avec PowerShell

Allez, on se lance dans le vif du sujet, on va voir des possibilités intéressantes offertes par PowerShell.

Récupérez des chaînes de caractères

Je lance ma console PowerShell, je trouve la console bleue jolie, j’utiliserai donc cette console pour la suite de ce chapitre.

Nous allons voir une fonction très intéressante : Read-Host. C’est une fonction qui permet de saisir une chaîne de caractères et de l’enregistrer dans une variable ; on utilisera cette fonction souvent dans la suite du cours.

On y va, tapez la commande suivante :

PS C:\Users\Administrateurs> $val = Read-Host "Rentrer une chaîne de caractères"

La console vous demande donc de saisir une chaîne de caractères. Vous pouvez entrer la chaîne de caractères de votre choix. Pour ma part, j'écrirai "Coucou, ce cours est trop bien" :

PS C:\Users\Administrateurs> $val = Read-Host "Rentrer une chaîne de caractères"
Rentrer une chaîne de caractères: Coucou, ce cours est trop bien

Ok, c’est cool, mais qu’est ce que je fais de ça, maintenant ? 

Pour afficher votre chaîne de caractères, tapez :

PS C:\Users\Administrateurs> $val
Coucou, ce cours est trop bien

Et voilà, la variable  $val  vous retourne votre chaîne de caractères "Coucou, ce cours est trop bien" !

Bon, vous allez me demander à quoi ça sert ? Eh ben vous le verrez très rapidement. En effet, dans les scripts que nous allons écrire ensemble, on a besoin que l’utilisateur puisse saisir des informations comme des noms d’utilisateurs, des noms de groupes, des noms d’OU (unité d’organisation), des noms de partage, etc.

Utilisez les bons types de variable

Voyons également une autre possibilité de PowerShell : c’est la saisie de valeurs numériques. Alors, nous n’allons pas voir tous les types de variable sous PowerShell, mais en voici quelques-unes :

  • [string]: chaîne de caractères, on l’a déjà vu précédemment ;

  • [char]  : caractère Unicode sur 16 bits ;

  • [byte]  : caractère sur 8 bits non signé ;

  • [int]  : valeur entière sur 32 bits signée ;

  • [long]  : valeur entière sur 64 bits signée ;

  • [bool]  : valeur booléenne (True/False : vraie/fausse).

Il existe d’autres types de variables comme  [decimal]  (valeur décimale sur 128 bits),  [DateTime]  (date et heure) ou  [array]  (tableau de valeur), que nous ne verrons pas dans ce cours. 

Allez, on va s’amuser à tester quelques types numériques, tapez les commandes suivantes :

PS C:\Users\Administrateurs> [byte] 254
254

Ici, tout va bien. Mais si on tape ceci :

PS C:\Users\Administrateurs> [byte] 3443
Impossible de convertir la valeur «3443» en type «System.Byte». Erreur: «La
valeur était trop grande ou trop petite pour un octet non signé.»
Au caractère Ligne:1 : 1
+ [byte] 3443
+ ~~~~~~~~~~~
 + CategoryInfo : InvalidArgument : (:) [], RuntimeException
 + FullyQualifiedErrorId : InvalidCastIConvertible

On obtient une erreur, car 3443 est supérieur à la valeur maximum supportée par un byte.

Faites donc bien attention à utiliser le bon type de variable dans vos scripts.

Résumé

Dans ce chapitre, nous avons vu :

  • l’utilisation de la console Invite de commandes DOS ;

  • le lancement de la console PowerShell ;

  • la commande  Get-Help  qui permet d’avoir des informations sur une commande PowerShell ;

  • la commande  Read-Host  qui permet de récupérer des informations afin de les traiter dans nos futurs scripts ;

  • les différents types de variable sous PowerShell (  [string]  ,  [char]  ,  [byte]  ,  [int]  ,  [long]  et  [bool]  ).

Dans le prochain chapitre, nous verrons comment gérer, créer et organiser des fichiers avec PowerShell.

Exemple de certificat de réussite
Exemple de certificat de réussite