Comment démarrer avec l’apprentissage de PowerShell
« Ouais, je connais un peu PowerShell », peut-être l’une des déclarations les plus utilisées lors des conférences techniques au fil des ans. Il n’y a pas beaucoup de déclarations qui peuvent être autant sous-estimées qu’exagérées.
Certains qui disent cela sont assez humbles, bien qu’ils en sachent probablement un peu sur PowerShell. D’autres ont tendance à penser qu’ils savent sur PowerShell est considéré comme sachant l’utiliser. Pour ceux qui ne savent pas comment l’utiliser, qui représente toujours une grande partie de la foule de l’assistance et de l’ingénierie des systèmes, il peut être assez décourageant de penser par où commencer même avec l’utilisation de PowerShell. Vous avez entendu d’innombrables discours techniques, lu des pages d’articles et eu de nombreuses conversations avec des pairs sur tout ce que cela peut faire pour vous. Vous regardez cette montagne en pleine croissance, et tout ce que vous pouvez faire est de vous concentrer sur le sommet, et l’évidence vous échappe lorsqu’il s’agit de planifier comment vous rendre à ce sommet. Cette première marche est juste devant vous, au pied de la montagne. Faisons ce premier pas ensemble.
Sommaire
Vous ne savez peut-être rien de PowerShell, et c’est OK
Mettons ça de côté. Si vous ne connaissez pas PowerShell, c’est parfaitement OK. C’est bien si vous connaissez PowerShell, mais c’est bien de dire la vérité si vous ne l’avez jamais utilisé. Hocher la tête en signe d’accord lors de discussions entre pairs et ajouter PowerShell à votre CV pour, espérons-le, obtenir un avantage peut être une réalité beaucoup plus rapide que vous ne le pensez. Chacun a sa propre histoire PowerShell, et la vôtre sera aussi unique que votre voyage dans le monde du support et de l’ingénierie informatique. Vous n’avez nulle part où aller, mais en haut!
Selon Microsoft Docs, « PowerShell est une solution d’automatisation des tâches multiplateforme composée d’un shell de ligne de commande, d’un langage de script et d’un cadre de gestion de la configuration. PowerShell fonctionne sous Windows, Linux et macOS. L’accent de ce message sera strictement sur la partie Shell de PowerShell et un objectif fondamental à cela. Les autres aspects sont un peu plus clairs lorsque vous obtenez plus d’expérience dans la partie shell de PowerShell.
Microsoft a développé PowerShell et développe continuellement PowerShell pour interagir avec les systèmes d’exploitation de bureau Windows, les systèmes d’exploitation Windows Server, les ressources Office 365 et les ressources cloud Azure. Il fera partie intégrante de la quasi-totalité de l’univers des produits Microsoft. PowerShell permet aux ingénieurs et au personnel d’assistance de gérer leurs responsabilités plus efficacement en permettant la création et la modification en bloc de ressources telles que des fichiers, des dossiers, des paramètres et des configurations. Il est surtout connu pour sa nomenclature verbe-nom unique et conviviale des applets de commande, prononcée comme « command-lets ». Les applets de commande sont les commandes réelles utilisées pour faire quelque chose avec PowerShell. Certaines applets de commande peuvent être exécutées exactement telles quelles, sans paramètres de définition. Vous les saisissez, appuyez sur Entrée et BOOM ! Vous avez une sortie qui vous est donnée dans la console. Si vous êtes familier avec l’invite de commande toujours fidèle dans l’environnement Windows, vous vous sentirez très à l’aise avec PowerShell. La plupart des commandes que vous exécutez généralement dans une invite de commande peuvent également s’exécuter dans une console PowerShell. Si quoi que ce soit, essayez-le la prochaine fois que vous utilisez habituellement l’invite de commande. Voyez comment il peut faire les mêmes choses à l’intérieur de la console PowerShell.
Décoller le voile de l’interface graphique
La plupart des gens aiment leur précieuse interface graphique. Ils peuvent voir tout ce qu’ils pensent avoir besoin de voir, et ils ressentent cette sensation chaleureuse et floue lorsqu’ils appuient sur Appliquer, puis sur OK. Certains d’entre eux aiment vivre sur le fil du rasoir et évitent complètement d’appuyer sur Appliquer ! Finalement, au fur et à mesure que vous approfondirez la gestion des serveurs, des postes de travail ou d’Exchange, vous vous retrouverez à cliquer sans cesse lorsqu’il y a une modification à apporter qui nécessite l’ajout de 360 utilisateurs à 20 groupes de sécurité Active Directory différents. Vos doigts sont-ils prêts pour ce cauchemar en cliquant ?
Il est assez sûr de dire que PowerShell aide à lever le voile qui est l’interface graphique précieuse et bien-aimée. PowerShell vous permet de prendre en charge la tâche de placer les utilisateurs AD dans plusieurs groupes et de concevoir quelques commandes pour effectuer le travail en une fraction du temps qu’il faudrait pour le faire via l’interface graphique. La belle chose est que Microsoft veut vous d’utiliser PowerShell pour ces tâches. Avec l’accent mis sur l’utilisation de PowerShell dans de nombreux examens de certification Microsoft majeurs, cela commence à ne plus être réservé aux administrateurs chevronnés, mais cela devient quelque chose de plus souvent nécessaire dans votre boîte à outils de support quotidien. Il est raisonnablement exact de dire que toute action, bouton, paramètre ou configuration que vous voyez dans l’interface graphique peut être manipulé et défini à l’aide de PowerShell, même dans les moindres détails du registre.
Faire les premiers pas
Commençons par quelques applets de commande que vous pouvez utiliser dès maintenant si vous lisez ceci sur un PC Windows. Une chose avec laquelle la plupart des administrateurs système et des ingénieurs interagissent est la console Services. Si vous ouvrez une console PowerShell, saisissez simplement Get-Service
et appuyez sur Entrée pour obtenir une liste des services installés. Vous serez obtenir une explosion rapide de tous les prestations de service installés sur le système local et leur état actuel de En cours d’exécution ou Arrêté. Cette sortie serait pratique pour voir si un service d’application spécifique est en cours d’exécution ou non.
Peut-être que vous ne voulez pas la liste complète des services et que vous recherchez un service spécifique. Supposons que vous souhaitiez voir si le service de spouleur est en cours d’exécution. Vous pouvez l’appeler par son nom en utilisant le paramètre -ServiceName comme ceci :
Get-Service -ServiceName spooler
Cette sortie vous donnera la liste unique du service Print Spooler et son état. Supposons que le service est actuellement démarré ou arrêté et que vous souhaitez soit l’arrêter, soit le démarrer. Vous pouvez utiliser l’entrée suivante pour arrêter/démarrer le service de spouleur :
Start-Service -ServiceName spooler Stop-Service -ServiceName spooler
Par défaut, ces lignes ne répertorient pas l’état du service lorsque la commande est envoyée. Vous devrez courir Get-Service -ServiceName spooler
pour afficher l’état actuel.
Heureusement, PowerShell est très compatible avec les caractères génériques lors de la liste des objets et des noms. Supposons que vous ayez besoin de vérifier un service spécifique, mais que vous n’êtes pas sûr de son nom « officiel ». Vous savez seulement que le premier mot est distant. C’est facile:
Get-Service -ServiceName remote*
Cette entrée listera tous les services commençant par le télécommande et vous permettent d’affiner votre recherche pour trouver le service spécifique que vous recherchez et prendre les mesures nécessaires. N’oubliez pas qu’il existe également une applet de commande Restart-Service.
En allant un peu plus loin pour obtenir un retour sur cette toute petite connaissance des services, vérifions les services sur un ordinateur distant. Supposons que vous êtes dans un environnement de domaine Windows et que vous disposez d’un accès administratif aux ordinateurs distants que vous gérez. Vous pouvez utiliser les mêmes applets de commande décrites précédemment, mais vous devez ajouter un paramètre et une valeur. Pour vérifier le service de spouleur d’impression sur un serveur distant nommé PrintServer01 :
Get-Service -ComputerName PrintServer01
Cette sortie listera tous les services installés sur la machine distante, tout comme le système local que nous avons fait précédemment. Cette applet de commande vous évitera d’utiliser RDP pour vous connecter au serveur distant afin de vérifier le service ou d’ajouter le serveur distant dans un composant logiciel enfichable MMC local. Cette capacité en elle-même porte ses fruits très rapidement.
Une autre commande qui peut être utilisée directement, sans paramètres, est Get-NetIPAddress. Cette applet de commande vous donnera une liste de tous les adaptateurs réseau sur le système local et une bonne quantité d’informations sur chaque adaptateur. Vous voyez dans cette sortie le fonctionnement interne derrière l’interface graphique. Vous pouvez voir beaucoup plus d’informations sur les choses que vous voyez habituellement sous forme d’icône dans l’interface graphique. La beauté de voir plus d’informations est que vous pouvez toujours utiliser PowerShell pour manipuler et rechercher ces informations supplémentaires. Par exemple, si vous souhaitez apporter des modifications à des adaptateurs réseau spécifiques, vous pouvez rechercher ou filtrer uniquement ceux qui ont une valeur particulière. Les possibilités sont infinies!
Où en savoir plus
Maintenant que vous avez la plus mince des tranches d’expérience PowerShell, c’est à vous de continuer la quête sur cette montagne discutée plus tôt. Mettre un pied devant l’autre est aussi simple que de parcourir certaines ressources incontournables pour obtenir des conseils PowerShell. Une simple recherche Google sur une applet de commande est un bon début. Microsoft Docs dispose d’une puissante bibliothèque pour chaque cmdlet avec de nombreux exemples d’utilisation. PowerShell lui-même fournit une bonne ressource pour des explications et des exemples. La commande Get-Help Get-Service
vous donnera plus d’informations sur notre exemple ci-dessus.
Une ressource dont de nombreux utilisateurs expérimentés de PowerShell se souviendront est un livre de premier ordre de Don Jones et Jeffrey Hicks. Ces géants de PowerShell possèdent les épaules sur lesquelles beaucoup se tiennent lorsqu’il s’agit de conquérir la montagne de PowerShell. Le livre s’intitule « Apprendre Windows PowerShell en un mois de déjeuners ». Ce livre facile à lire vous guide à travers les bases de la connaissance de PowerShell en petits morceaux et finit par être une ressource à laquelle vous vous référerez continuellement lorsque vous vous retrouverez dans une situation où vous devez utiliser PowerShell.
La communauté PowerShell est également un lieu d’apprentissage très ouvert et utile. Le subreddit r/PowerShell et le site PowerShell.org ont une communauté très florissante de personnes avec divers degrés d’expérience. Vous pouvez toujours obtenir des conseils de ces ressources. Vous ne pourrez pas escalader cette montagne à moins de franchir les étapes, alors allez-y et voyez comment PowerShell peut vous aider dans votre routine quotidienne et les tâches banales que vous redoutez parfois. Vous pouvez vous retrouver frénétique pour planifier et automatiser une bonne partie de votre charge de travail afin que vous puissiez vous donner le temps d’en savoir plus sur PowerShell !