Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Historiquement, les utilitaires en ligne de commande des systèmes Unix sont plus développés que ceux des systèmes Unix. WindowsCependant, avec l'avènement d'une nouvelle solution, la situation a changé.

Windows PowerShell permet aux administrateurs système d'automatiser la plupart des tâches courantes. Il peut être utilisé pour modifier les paramètres, démarrer et arrêter des services, et gérer la plupart des applications installées. Considérer cette fenêtre bleue comme un simple interpréteur de commandes serait une erreur. Cette approche ne rend pas compte de l'essence des innovations de Microsoft. En réalité, ses fonctionnalités sont bien plus vastes. Windows PowerShell est beaucoup plus vaste : dans cette courte série d’articles, nous allons tenter de comprendre en quoi la solution de Microsoft diffère des outils qui nous sont plus familiers.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Caractéristiques principales 

Certainement Windows PowerShell est principalement un interpréteur de commandes doté d'un langage de script, initialement conçu sur le framework .NET puis sur .NET Core. Contrairement aux interpréteurs de commandes qui acceptent et renvoient des données textuelles, Windows PowerShell fonctionne avec les classes .NET, qui possèdent des propriétés et des méthodes. Il permet d'exécuter des commandes classiques et offre également un accès aux objets COM, WMI et ADSI. Il utilise diverses ressources de stockage, telles que le système de fichiers et le registre. WindowsCes composants sont accessibles via des fournisseurs. Il convient de noter la possibilité d'intégrer des composants exécutables PowerShell dans d'autres applications pour réaliser diverses opérations, y compris via une interface graphique. L'inverse est également vrai : de nombreuses applications pour Windows leur fournir un accès à leurs interfaces de gestion via PowerShell. 

Windows PowerShell vous permet de :

  • Modifier les paramètres du système d'exploitation ;
  • Gérer les services et les processus ;
  • Configurer les rôles et les composants du serveur ;
  • Installer le logiciel;
  • Gérer les logiciels installés via des interfaces spéciales ;
  • Intégrer des composants exécutables dans des programmes tiers ;
  • Créer des scripts pour automatiser les tâches d'administration ;
  • Travailler avec le système de fichiers et le registre Windows, stockage des certificats, etc.

Shell et environnement de développement

Là Windows PowerShell se présente sous deux formes : outre l’émulateur de console et l’interpréteur de commandes, il existe également un environnement de script intégré (ISE). Pour accéder à l’interface en ligne de commande, il suffit de sélectionner le raccourci approprié dans le menu. Windows Vous pouvez également lancer powershell.exe depuis le menu Exécuter. Une fenêtre bleue s'affichera, dont les fonctionnalités diffèrent sensiblement de celles de l'ancien cmd.exe. Elle propose la saisie semi-automatique et d'autres fonctions familières aux utilisateurs de l'interpréteur de commandes Unix.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Pour travailler avec le shell, vous devez vous souvenir de certains raccourcis clavier :

  • Les flèches haut et bas font défiler l'historique pour répéter les commandes saisies précédemment ;
  • La flèche droite en fin de ligne retape la commande précédente caractère par caractère ;
  • Ctrl+Origine supprime le texte tapé de la position du curseur jusqu'au début de la ligne ;
  • Ctrl+Fin supprime le texte du curseur jusqu'à la fin de la ligne.

F7 affiche une fenêtre avec des commandes saisies et vous permet de sélectionner l'une d'entre elles. La console fonctionne également avec la sélection de texte à la souris, le copier-coller, le positionnement du curseur, la suppression, le retour arrière - tout ce que nous aimons.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Windows PowerShell ISE est un environnement de développement complet doté d'un éditeur de code à onglets avec coloration syntaxique, d'un concepteur de commandes, d'un débogueur intégré et d'autres fonctionnalités pratiques. Si vous saisissez un tiret après le nom d'une commande dans l'éditeur, une liste déroulante de tous les paramètres disponibles, ainsi que leur type, s'affiche. Vous pouvez lancer PowerShell ISE soit via un raccourci dans le menu système, soit en exécutant le fichier powershell_ise.exe.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Applets de commande 

В Windows PowerShell propose désormais des cmdlets. Ce sont des classes .NET spécialisées qui implémentent diverses fonctionnalités. Leur nom suit le principe Action-Objet (ou Verbe-Nom), et la paire verbe-nom, séparée par un tiret, rappelle la structure sujet-prédicat du langage naturel. Par exemple, Get-Help signifie littéralement « Obtenir de l'aide » ou, dans le contexte de PowerShell, « Afficher l'aide ». C'est l'équivalent de la commande man sous Unix, et il est recommandé d'accéder à la documentation de PowerShell de cette manière, plutôt qu'en invoquant des cmdlets avec les options --help ou /?. N'oubliez pas la documentation en ligne de PowerShell : celle de Microsoft est très complète.

En plus de Get, les applets de commande utilisent d'autres verbes pour désigner des actions (et pas seulement des verbes à proprement parler). Dans la liste ci-dessous, nous donnons quelques exemples :

Add - ajouter;
Clear - clair;
Enable - allumer;
Disable - éteindre;
New - créer;
Remove - supprimer;
Set - demander;
Start - courir;
Stop - arrêt;
Export - exporter;
Import - importer.

Il existe des applets de commande système, utilisateur et facultatives : à la suite de leur exécution, elles renvoient toutes un objet ou un tableau d'objets. Ils ne sont pas sensibles à la casse, c'est-à-dire du point de vue de l'interpréteur de commandes, il n'y a pas de différence entre Get-Help et get-help. Le caractère ';' est utilisé pour la séparation, mais il est obligatoire de le mettre uniquement si plusieurs applets de commande sont exécutées sur la même ligne. 

Applets de commande Windows PowerShell est organisé en modules (NetTCPIP, Hyper-V, etc.), et l'applet de commande Get-Command permet de rechercher des objets et des actions. Vous pouvez afficher son aide comme ceci :

Get-Help Get-Command

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Par défaut, la commande affiche une brève aide, mais les paramètres (arguments) sont transmis aux applets de commande selon les besoins. Avec leur aide, vous pouvez par exemple obtenir une aide détaillée (paramètre -Detailed) ou complète (paramètre -Full), ainsi que des exemples d'affichage (paramètre -Examples) :

Get-Help Get-Command -Examples

Aide à Windows PowerShell se met à jour à l'aide de l'applet de commande Update-Help. Si une ligne de commande devient trop longue, les arguments de l'applet de commande peuvent être déplacés à la ligne suivante en tapant le symbole « ` » et en appuyant sur Entrée ; il n'est pas possible de terminer la saisie d'une commande sur une ligne et de continuer sur une autre.

Voici quelques exemples d'applet de commande courantes : 

Get-Process - afficher les processus en cours d'exécution dans le système ;
Get-Service — afficher les services et leur statut ;
Get-Content - afficher le contenu du fichier.

Pour les cmdlets et les utilitaires externes fréquemment utilisés dans Windows PowerShell possède des synonymes courts appelés alias. Par exemple, `dir` est un alias de `Get-ChildItem`. La liste des synonymes inclut également des commandes de type Unix (`ls`, `ps`, etc.), et l'applet de commande `Get-Help` est appelée par la commande `help`. La liste complète des synonymes peut être consultée à l'aide de l'applet de commande `Get-Alias`.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Scripts, fonctions, modules et langage PowerShell

Scripts Windows Les scripts PowerShell sont enregistrés sous forme de fichiers texte brut avec l'extension .ps1. Il est impossible de les exécuter par un double-clic ; vous devez effectuer un clic droit pour afficher le menu contextuel et sélectionner « Exécuter avec PowerShell ». Dans la console, vous devrez soit spécifier le chemin complet vers le script, soit accéder au répertoire approprié et saisir le nom du fichier. L'exécution de scripts est également soumise à des restrictions de stratégie système. Pour consulter les paramètres actuels, vous pouvez utiliser l'applet de commande Get-ExecutionPolicy, qui renverra l'une des valeurs suivantes :

Restricted — le lancement des scripts est désactivé (par défaut) ;
AllSigned - seul le lancement de scripts signés par un développeur de confiance est autorisé ;
RemoteSigned - autorisé à exécuter des scripts signés et propres ;
Unrestricted - autorisé à exécuter tous les scripts.

L'administrateur a deux options. Le plus sûr consiste à signer des scripts, mais c'est une sorcellerie assez sérieuse - nous en parlerons dans de futurs articles. Prenons maintenant le chemin de moindre résistance et changeons de politique :

Set-ExecutionPolicy RemoteSigned

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
PowerShell devra être exécuté en tant qu'administrateur pour ce faire, bien que vous puissiez modifier la stratégie de l'utilisateur actuel avec un paramètre spécial.

Les scripts sont écrits dans un langage de programmation orienté objet, dont les commandes sont nommées selon le même principe que les cmdlets évoquées précédemment : « Action-Objet » (« Verbe-Nom »). Son objectif principal est l’automatisation des tâches administratives, mais il s’agit d’un langage interprété complet qui inclut toutes les constructions nécessaires : instructions conditionnelles, boucles, variables, tableaux, objets, gestion des erreurs, etc. Tout éditeur de texte convient à l’écriture de scripts, mais l’utilisation d’un éditeur de texte est plus pratique. Windows PowerShell ISE.

Vous pouvez transmettre des paramètres au script, les rendre obligatoires et définir des valeurs par défaut. De plus, Windows PowerShell vous permet de créer des fonctions et de les appeler comme des cmdlets, à l'aide de la construction Function et d'accolades. Un script contenant des fonctions est appelé un module et possède l'extension .psm1. Les modules doivent être stockés dans des répertoires définis dans les variables d'environnement PowerShell. Vous pouvez les afficher à l'aide de la commande suivante :

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

Convoyeurs

Dans le dernier exemple, nous avons utilisé une construction familière aux utilisateurs de shells Unix. Windows La barre verticale de PowerShell permet également de rediriger la sortie d'une commande vers l'entrée d'une autre, mais l'implémentation du pipeline diffère sensiblement : il ne s'agit plus d'une chaîne de caractères ou de texte. Les cmdlets intégrées et les fonctions définies par l'utilisateur renvoient des objets ou des tableaux d'objets et peuvent également les recevoir en entrée. À l'instar de l'interpréteur de commandes Bourne et de ses nombreux successeurs, PowerShell utilise le pipeline pour simplifier les tâches complexes.

L'exemple de pipeline le plus simple ressemble à ceci :

Get-Service | Sort-Object -property Status

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Tout d'abord, l'applet de commande Get-Service est exécutée, puis tous les services qu'elle reçoit sont transmis à l'applet de commande Sort-Object pour être triés par la propriété Status. L'argument auquel le résultat de la section précédente du pipeline est transmis dépend de son type - généralement, il s'agit de InputObject. Ce problème sera abordé plus en détail dans un article consacré au langage de programmation PowerShell. 

Si nécessaire, la chaîne peut être étendue et le résultat de Sort-Object peut être transmis à une autre cmdlet (elles seront exécutées de gauche à droite). D'ailleurs, les utilisateurs Windows Le système de pagination, familier à tous les utilisateurs d'Unix, est également disponible : 

Get-Service | Sort-Object -property Status | more

Exécuter des tâches en arrière-plan 

Il est souvent nécessaire d'exécuter une commande en arrière-plan, afin de ne pas avoir à attendre le résultat de son exécution dans la session shell. Windows PowerShell propose plusieurs cmdlets pour ce cas :

Start-Job - lancer une tâche en arrière-plan ;
Stop-Job — arrêter la tâche en arrière-plan ;
Get-Job — afficher la liste des tâches en arrière-plan ;
Receive-Job — visualiser le résultat de l'exécution de la tâche en arrière-plan ;
Remove-Job — suppression d'une tâche en arrière-plan ;
Wait-Job - transférer la tâche d'arrière-plan vers la console.

Pour démarrer une tâche en arrière-plan, nous utilisons l'applet de commande Start-Job et spécifions une commande ou un ensemble de commandes entre accolades :

Start-Job {Get-Service}

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Tâches de fond dans Windows PowerShell peut être manipulé en connaissant leurs noms. Commençons par apprendre à les afficher :

Get-Job

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Montrons maintenant le résultat du travail Job1 :

Receive-Job Job1 | more

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Tout est assez simple.

Exécution de commandes à distance

Windows PowerShell vous permet d'exécuter des commandes et des scripts non seulement sur l'ordinateur local, mais aussi sur des ordinateurs distants et même sur des groupes de machines. Il existe plusieurs façons de procéder :

  • De nombreuses applets de commande ont un paramètre -ComputerName, mais de cette manière, cela ne fonctionnera pas, par exemple, pour créer un convoyeur;
  • Applet de commande Enter-PSSession permet de créer une session interactive sur une machine distante ; 
  • Utilisation de l'applet de commande Invoke-Command vous pouvez exécuter des commandes ou des scripts sur un ou plusieurs ordinateurs distants.

Versions de PowerShell

PowerShell a considérablement évolué depuis sa première version en 2006. Il est disponible pour une large gamme de systèmes fonctionnant sur différentes plateformes matérielles (x86, x86-64, Itanium, ARM) : Windows XP, Windows Server 2003 Windows Vista, Windows Server 2008/2008R2, Windows 7, Windows 8, Windows 8.1 Windows rt, Windows RT 8.1, Windows Server 2012/2012R2, Windows 10, Windows Server 2016, GNU/Linux et OS X. La dernière version, 6.2, a été publiée le 10 janvier 2018. Les scripts écrits pour les versions antérieures sont susceptibles de fonctionner avec les versions ultérieures, mais la rétrocompatibilité peut s'avérer problématique, car PowerShell a ajouté un grand nombre de nouvelles cmdlets au fil des ans. Vous pouvez connaître la version de l'interpréteur de commandes installée sur votre ordinateur à l'aide de la propriété PSVersion de la variable intégrée $PSVersionTable :

$PSVersionTable.PSVersion

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
Vous pouvez également utiliser l'applet de commande :

Get-Variable -Name PSVersionTable –ValueOnly

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés
La même chose est faite avec l'applet de commande Get-Host. En fait, il existe de nombreuses options, mais pour les utiliser, vous devez apprendre le langage de programmation PowerShell, ce que nous ferons dans article suivant

Les résultats de 

Microsoft a créé un interpréteur de commandes extrêmement puissant, doté d'un environnement intégré pratique pour le développement de scripts. Ce qui le distingue des outils auxquels nous sommes habitués dans l'univers Unix, c'est son intégration poussée avec les systèmes d'exploitation de la famille Unix. WindowsPowerShell, ainsi que les logiciels associés et la plateforme .NET Core, est un interpréteur de commandes orienté objet. En effet, les cmdlets et les fonctions définies par l'utilisateur renvoient des objets ou des tableaux d'objets et peuvent les recevoir en entrée. Nous sommes convaincus que cet outil est indispensable à tout administrateur de serveur. WindowsL'époque où l'on pouvait se passer de la ligne de commande est révolue. Un shell console avancé est particulièrement nécessaire sur notre VPS à bas prix géré par Windows Server Core, mais c'est une toute autre histoire.

Qu'est-ce que Windows PowerShell et ses applications ? Partie 1 : Fonctionnalités clés

Seuls les utilisateurs enregistrés peuvent participer à l'enquête. se connecters'il te plait.

Quels sujets devraient être abordés en premier dans les prochains articles de la série ?

  • 53,2 %Programmation en PowerShell123

  • 42,4 %Fonctions et modules PowerShell98

  • 22,1 %Comment signer ses propres scripts ?51

  • 12,1 %Travailler avec des référentiels via des fournisseurs (fournisseurs)28

  • 57,6 %Automatisation de l'administration informatique avec PowerShell133

  • 30,7 %Gestion des logiciels et intégration des exécutables PowerShell dans des produits tiers71

231 utilisateurs ont voté. 37 utilisateurs se sont abstenus.

Source: habr.com

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster