• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 16/10/2023

Administrez votre serveur à l’aide de PowerShell

Dans ce chapitre, vous allez découvrir les nombreuses fonctionnalités offertes par PowerShell. Arrivée avec Windows 7, cette suite logiciel et langage de script permet de retrouver un environnement en ligne de commande à la manière d’un shell dans le monde Unix/Linux. Vous allez donc pouvoir effectuer l’intégralité des tâches d’administration en mode ligne de commande, et vous passer d’une interface graphique très gourmande en ressources processeur et mémoire.

Il était déjà possible dans les versions antérieures à Windows 7, d'utiliser les lignes de commande grâce à l’invite de commande. Powershell vient remplacer l’invite de commande, qui datait de l’époque de MS-DOS et qui avait ses limites en terme d’administration.

Dans la suite, nous allons justement nous focaliser sur les commandes d’administration.

Prenez en main PowerShell

Avant de complètement vous passer d’une interface graphique, je vous propose de vous entraîner avec un serveur Windows Standard disposant d’une expérience utilisateur complète, en utilisant l’ISE PowerShell fourni.

Pour cela, rendez-vous, une fois n’est pas coutume, dans le menu Démarrer, et sélectionnez “Windows PowerShell ISE”. Vous devriez avoir la fenêtre suivante ouverte au bout de quelques instants :

ISE PowerShell
ISE PowerShell

L’ISE PowerShell se présente à sa première exécution avec un shell (en bleu à gauche) et une zone de commande (en blanc à droite) listant toutes les commandes PowerShell (telles que Get-Volume, Enable-LocalUser, Set-StoragePool, Get-DnsClientCache) prises en charge par votre système.

Vous allez pouvoir par exemple taper des commandes ou aller directement dans le panneau de droite pour avoir plus d’informations sur la commande et une aide au paramétrage.

Exemple avec la commande Get-Volume
Exemple avec la commande Get-Volume

Vous pouvez également afficher un panneau supplémentaire de script, vous permettant de tester des commandes avant de les regrouper au sein d’un script PowerShell (avec l’extension .ps1) :

ISE complet
ISE complet

Vous pouvez maintenant prendre en main le langage de script en testant quelques commandes intégrées simples à mettre en œuvre. Les premières commandes utiles à un gestionnaire de serveur sont celles permettant l’ajout de fonctionnalités ou rôles.

Ajout d’une fonctionnalité client Telnet via Powershell
Ajout d’une fonctionnalité client Telnet via PowerShell

Une commande pratique est  Get-WindowsFeature  , qui peut s’appliquer à tous les serveurs accessibles, ou simplement au serveur local. Il est également possible d’appliquer des filtres à l’affichage des résultats, comme par exemple ici avec l’affichage uniquement des fonctionnalités installées :

Affichage des fonctionnalités installées sur le serveur SRVWDSNAN01
Affichage des fonctionnalités installées sur le serveur SRVWDSNAN01

J’ai cette fois utilisé le script. Pour l’exécuter, il suffit simplement de cliquer sur la flèche verte, le résultat de ce script s'affiche alors dans la partie shell.

Utilisez des scripts existants

Une des forces de PowerShell est, comme pour le monde Unix/Linus, sa communauté ! Vous trouverez de nombreux scripts tout prêts, confectionnés par des administrateurs ou techniciens soucieux d’optimiser leur temps afin de pouvoir se focaliser sur des tâches d’ingénierie système, réseau, ou afin de se libérer du temps pour augmenter le niveau de sécurité de leurs parcs.

Vous pourrez par exemple trouver des scripts permettant de vérifier l’état de santé de votre Active Directory afin de vous envoyer un rapport par mail des éléments récupérés par PowerShell. Pratique, non ?

Prenez en main les Desired State Configuration (DSC)

D’ailleurs, Microsoft et la communauté implémentent de nombreux scripts PowerShell permettant de configurer un serveur. Cela permet de faire en sorte que sa configuration soit figée et permet d’avoir un état précis, désiré, de configuration. Ces scripts, regroupés sous l’appellation PowerShell DSC, représentent une nouvelle fonctionnalité, très pratique, permettant de définir un état de configuration.

Cela se fait notamment à travers la déclaration d’une configuration cible dans des scripts.

Vous allez ainsi pouvoir gérer vos configurations via des scripts, et même versionner ces configurations. Il devient ainsi possible de ne pas administrer directement un serveur, mais de déclarer la configuration et de laisser le moteur PowerShell DSC appliquer les modifications.

Là encore, la communauté sera un atout non négligeable pour vous, car de nombreuses configurations désirées ont été décrites et mises à disposition.

Par exemple, vous souhaitez gérer un Active Directory. Lancez alors la commande  find-module -name *AD*  . La première chose que vous allez remarquer est que votre ISE va vous demander d’installer NuGet.

Écran de demande d'installation de NuGet
Écran de demande d'installation de NuGet

Cela permet de rechercher des modules en ligne sur la PSGallery.

Ensuite, vous aurez une liste de tous les modules répondant au critère que vous avez entré :

Liste des scripts liés à l’administration d’un AD
Liste des scripts liés à l’administration d’un AD

Vous retrouverez par exemple le module xActiveDirectory qui va vous permettre de gérer un AD  ou xRemoteDesktopAdmin pour configurer les bureau à distance intégralement en ligne de commande.

Grâce à ces nombreux scripts, il vous est maintenant possible de vous tourner vers une distribution “Core” sans interface graphique. Vous vous souvenez, c'est la version que vous auriez pu installer au tout début de ce cours. La version Core est plus légère et cela vous permettra de gérer vos serveurs au travers de PowerShell, et d’utiliser les états désirés afin de garantir la bonne configuration de vos serveurs.

Cela permet de préparer sereinement une transition vers le Cloud qui permet, au travers d’API, de configurer une architecture complète en quelques lignes de script !

Allez plus loin

En résumé

  • Windows Server dispose d’un ISE, environnement de script intégré permettant de simplifier l’utilisation de PowerShell.

  • PowerShell permet de lancer des commandes au système d’exploitation sans avoir d’interface graphique, en mode texte.

  • Grâce aux nombreux scripts PowerShell, il devient possible de se passer complètement d’une interface graphique et donc de gagner en ressources disponibles, surtout dans un environnement Cloud.

  • Il est possible de décrire une configuration et d’être assuré de son application au travers de PowerShell DSC, permettant ainsi de déployer des serveurs, voire des ensembles de serveurs uniquement en ligne de commande.

Dans le prochain chapitre de ce cours, vous apprendrez à virtualiser vos serveurs à l’aide de l’outil de virtualisation de Windows : Hyper-V.

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