powershell

Microsoft PowerShell : connaître les bases sur cet outil d’administration système

Microsoft PowerShell constitue une solution de gestion efficace qui permet une automatisation des fonctions de votre PC et du réseau. Il comprend toutes les capacités de l’invite de commandes et se base sur la plateforme .NET Framework. Il est l’outil de prédilection des administrateurs informatiques depuis longtemps pour la gestion des grands réseaux.

Un apprentissage de la manipulation de PowerShell vous permet de faciliter plusieurs commandes ennuyeuses du quotidien. De plus, vous pourrez effectuer des modifications sur l’intégralité du réseau, sans devoir effectuer des réglages spécifiques sur chaque serveur. Récemment, PowerShell joue un rôle essentiel dans le fonctionnement d’un réseau complexe dans le Cloud.

Que peut-on faire avec Microsoft PowerShell ?

PowerShell est un excellent moyen de gagner du temps et offre de multiples possibilités pour améliorer la productivité et l’efficacité de votre réseau. Il vous permet en particulier de programmer certaines mises à jour régulières des systèmes.

Il permet également de consulter les informations sur les tâches actuelles, de gérer des services et plus encore. Certes, bon nombre de ces opérations sont réalisables depuis l’interface graphique de Windows, mais l’objectif de PowerShell consiste à les exécuter de façon plus efficace.

Si une tâche de routine prend plusieurs heures à effectuer et à configurer, il est alors facile de créer une seule commande à partir de cette même opération à partir de PowerShell. Par conséquent, il vous suffit de lancer le script avec le nom que vous avez donné et il s’exécutera alors en tâche de fond lors de votre prochaine utilisation.

Microsoft PowerShell : introduction sur les outils

PowerShell fonctionne par défaut sous les versions, Windows 7, Windows 10 et Windows Server 2008 R2, ainsi que les versions ultérieures du système d’exploitation Microsoft. La dernière version de PowerShell apporte de nouveaux éléments ainsi que de nouvelles fonctionnalités. Elle est mise en place en utilisant la nouvelle version de Windows Management Framework (WMF).

La version WMF 5.1 est la version la plus récente conseillée pour la mise en production. Outre la version WMF, plusieurs fonctions nouvelles sont parfois dépendantes du système d’exploitation.

Pour les utilisateurs, deux outils PowerShell sont à leur disposition : le PowerShell ISE (Integrated Scripting Environment) et la PowerShell Console. Cette dernière ressemble à l’invite des commandes MsDOS, mais avec toute la puissance de PowerShell. Le PowerShell ISE donne également la possibilité de fonctionner simultanément avec plusieurs scripts PowerShell en utilisant la navigation avec des onglets.

Traitement des dossiers et des fichiers

Quasiment tous les administrateurs système dépensent une grande partie de leur temps pour traiter des dossiers et des fichiers. En cas de tâches redondantes effectuées sur de nombreux fichiers, ou si la même série de tâches se répète, PowerShell permet de gagner un temps précieux.

La commande PowerShell offre  une commande analogique sous la forme du cmdlet Get-ChildItem. Cette commande permet de créer rapidement la liste des dossiers d’un répertoire pour pouvoir traiter ceux-ci, soit par le biais d’une commande pipeline, soit en assignant la sortie à une variable.

Lorsque vous travaillez avec les fichiers, il est souvent nécessaire de déterminer si un fichier existe et si le chemin d’accès est valide. PowerShell possède un cmdlet permettant de réaliser cette validation grâce à sa fonction Test-Path, qui retourne un argument vrai ou faux. TestPath sert généralement de mesure de sécurité avant de tenter de supprimer ou de copier un fichier spécifique.

Les opérateurs de comparaison et les logiques conditionnelles

Tous les jours, les administrateurs système décident des opérations de maintenance à réaliser pour les serveurs en fonction de nombreux paramètres. Automatiser ces tâches répétitives avec PowerShell revient souvent à utiliser une logique pour répliquer ce procédé de décision. Il existe diverses méthodes permettant d’atteindre les objectifs souhaités. Ces solutions comprennent les analyses de comparaison, les filtrages et une certaine logique conditionnelle.

La capacité à vérifier si un opérateur existe, si un fichier a été créé, ou si un ordinateur permet de connecter un autre ordinateur, exige une référence à une valeur. Plutôt que d’utiliser les traditionnels opérateurs de comparaisons tels que < ou >, PowerShell utilise -lt ou -gt pour procéder aux différentes comparaisons.

Une des méthodes les plus communes permettant le contrôle du flux du script et la logique conditionnelle est le recours aux déclarations if. Sous PowerShell, les déclarations if sont combinées avec les déclarations elseif et else. Celles-ci vous permettent de gérer de multiple cas de figure.

Quant aux déclarations, la fonction « switch » permet de réaliser un ensemble de commandes quand certains paramètres sont respectés. La grande différence entre if et switch est que les commandes switch valident un seul critère face à de multiples possibilités. If permet d’évaluer toute instruction par rapport à un jeu de critères qui n’ont pas de rapport entre eux.

L’utilisation des tableaux, des tables de hachage et des variables

PowerShell est assez simple pour permettre aux débutants de se lancer dans l’apprentissage de la langue. Ils pourront se servir des instructions de la console et même composer des scripts plutôt simples.

À fur et à mesure que les scripts PowerShell se compliquent, il vous faudra travailler sur des aspects de ce langage qui vous permettront de retrouver les cours de programmation étudiés à l’université. Les variables, en particulier, sont indispensables à la réalisation des scripts, dans la mesure où elles permettent de transmettre les informations entre les différents segments de votre script.

Il est possible de donner des notes à des variables afin qu’elles puissent être référencées dans le script PowerShell. En utilisant des variables, vous vous assurez que les valeurs demeurent constantes dans tout le script. Il est ainsi plus aisé de changer la variable par la suite et, en général, le script sera beaucoup plus facile à lire.

Le plus souvent, les tableaux servent à établir une série de valeurs, comme une liste de villes ou de noms d’utilisateurs. PowerShell offre différentes versions de tables, chacune pouvant être assignée et consultée individuellement.

Contrôle des serveurs et des sessions à distance

Comme bon nombre d’outils de gestion de systèmes, PowerShell ne présente que des avantages pour les entreprises qui n’ont pas besoin de s’appuyer sur plusieurs systèmes. Dans la majorité des cas, il faut exécuter des cmdlets par exemple ou des scripts PowerShell de sorte que les opérations sont effectuées sur les systèmes à distance.

Plusieurs cmdlets PowerShell classiques utilisés quotidiennement (Get-Process, Get-Service, Get-EventLog, etc.) peuvent être utilisés pour exécuter des opérations sur des postes de travail à distance. Il convient également de noter que la fonction -ComputerName autorise de multiples noms d’hôtes, ce qui permet de prendre en charge une multitude de serveurs à la fois sans devoir lancer le cmdlet à plusieurs reprises. La gestion des ordinateurs distants à partir de cette façon contourne certains des besoins pour les sessions à distance PowerShell récurrentes.

Quel est l’intérêt d’utiliser des sessions à distance ?

La performance est l’une des raisons de pourquoi utiliser les sessions à distance. Quand vous lancez un cmdlet local tel que Get-Service sur plusieurs ordinateurs, le système local effectue la tâche et traite les données de chacun des ordinateurs.

En cas d’utilisation de sessions à distance, chacun des ordinateurs lance la commande. Cela permet de distribuer la charge du travail sur tous les ordinateurs. Quand il est question de scripts PowerShell exécutés sur une centaine ou un millier d’ordinateurs, la performance se place au premier rang de vos priorités.

Utiliser plusieurs applets de commande dans une seule session est aussi une raison d’utiliser des sessions PowerShell distantes. Cela permet l’exécution de plusieurs commandes sur chaque serveur. Il peut même lancer des scripts complets à distance. De cette manière, la possibilité d’utiliser des sessions à distance part de l’automatisation des commandes à la planification des services dans un centre de données, ou tout autre processus imaginable.

Pin It on Pinterest