Geek School: Apprenez à automatiser Windows avec PowerShell

Table des matières:

Geek School: Apprenez à automatiser Windows avec PowerShell
Geek School: Apprenez à automatiser Windows avec PowerShell

Vidéo: Geek School: Apprenez à automatiser Windows avec PowerShell

Vidéo: Geek School: Apprenez à automatiser Windows avec PowerShell
Vidéo: IOS 15.4 : NOUVEAU BLOQUE TES APPLICATIONS AVEC FACE ID ET CODE (methode tres facile) - YouTube 2024, Avril
Anonim
Dans cette édition de Geek School, nous vous aiderons à comprendre le puissant langage de script PowerShell intégré à Windows et extrêmement utile à connaître dans un environnement informatique.
Dans cette édition de Geek School, nous vous aiderons à comprendre le puissant langage de script PowerShell intégré à Windows et extrêmement utile à connaître dans un environnement informatique.

Bien que cette série ne soit pas structurée autour d’un examen, l’apprentissage de PowerShell est l’une des tâches les plus importantes que vous puissiez effectuer en tant qu’administrateur réseau. Si vous souhaitez en apprendre un autre pour vous aider dans votre carrière informatique, c’est ce qu’il vous faut. De plus, c’est très amusant.

introduction

PowerShell est l’outil d’automatisation le plus puissant que Microsoft puisse offrir. Il est à la fois un shell et un langage de script.

Veuillez noter que cette série est basée sur PowerShell 3, fourni avec Windows 8 et Server 2012. Si vous utilisez Windows 7, veuillez télécharger la mise à jour de PowerShell 3 avant de continuer.

Rencontrez la console et l'ISE

Il existe deux manières d'interagir avec PowerShell, la console et l'environnement de script intégré, également appelé ISE. L'ISE s'est considérablement amélioré par rapport à la version hideuse fournie avec PowerShell 2 et peut être ouvert en appuyant sur la combinaison de touches Win + R pour afficher une boîte d'exécution, puis en tapant powershell_ise et en appuyant sur Entrée.

Comme vous pouvez le voir, l'ISE affiche une vue fractionnée afin que vous puissiez écrire rapidement un script tout en pouvant afficher le résultat dans la moitié inférieure de l'ISE. La moitié inférieure de l'ISE, où les résultats de votre script sont imprimés, peut également être utilisée en tant qu'invite REPL, un peu comme une invite de commande. La v3 ISE a finalement ajouté la prise en charge d’intelliSense dans le volet de script ainsi que dans la console interactive.
Comme vous pouvez le voir, l'ISE affiche une vue fractionnée afin que vous puissiez écrire rapidement un script tout en pouvant afficher le résultat dans la moitié inférieure de l'ISE. La moitié inférieure de l'ISE, où les résultats de votre script sont imprimés, peut également être utilisée en tant qu'invite REPL, un peu comme une invite de commande. La v3 ISE a finalement ajouté la prise en charge d’intelliSense dans le volet de script ainsi que dans la console interactive.
Image
Image
Sinon, vous pouvez interagir avec PowerShell à l'aide de la console PowerShell, ce que j'utiliserai pour la plupart de cette série. La console PowerShell se comporte comme l’invite de commande: vous saisissez simplement des commandes et les résultats sont affichés. Pour ouvrir la console Windows PowerShell, appuyez à nouveau sur la combinaison de touches Win + R pour ouvrir une boîte d'exécution, tapez PowerShell puis appuyez sur Entrée.
Sinon, vous pouvez interagir avec PowerShell à l'aide de la console PowerShell, ce que j'utiliserai pour la plupart de cette série. La console PowerShell se comporte comme l’invite de commande: vous saisissez simplement des commandes et les résultats sont affichés. Pour ouvrir la console Windows PowerShell, appuyez à nouveau sur la combinaison de touches Win + R pour ouvrir une boîte d'exécution, tapez PowerShell puis appuyez sur Entrée.
Les invites REPL comme celle-ci sont géniales pour la gratification instantanée: vous entrez une commande et vous obtenez des résultats. Bien que la console n’offre pas intellisense, elle propose ce qu’on appelle l’achèvement de la tabulation qui fonctionne à peu près de la même façon: il suffit de commencer à taper une commande et d’appuyer sur la touche tabulation pour faire défiler les correspondances possibles.
Les invites REPL comme celle-ci sont géniales pour la gratification instantanée: vous entrez une commande et vous obtenez des résultats. Bien que la console n’offre pas intellisense, elle propose ce qu’on appelle l’achèvement de la tabulation qui fonctionne à peu près de la même façon: il suffit de commencer à taper une commande et d’appuyer sur la touche tabulation pour faire défiler les correspondances possibles.
Image
Image
Image
Image

Utiliser le système d'aide

Dans les versions précédentes de PowerShell, les fichiers d’aide étaient inclus lors de l’installation de Windows. C’était une bonne solution pour la plupart mais nous laissait un problème important. Lorsque l'équipe d'aide de PowerShell a dû cesser de travailler sur les fichiers d'aide, les développeurs de PowerShell étaient toujours en train de coder et d'apporter des modifications. Cela signifiait que lors de la livraison de PowerShell, les fichiers d’aide étaient incorrects, car ils ne contenaient pas les modifications les plus récentes apportées au code. Pour résoudre ce problème, PowerShell 3 ne contient aucun fichier d’aide et comprend un système d’aide pouvant être mis à jour. Cela signifie que, avant de faire quoi que ce soit, vous voudrez télécharger les derniers fichiers d'aide. Vous pouvez le faire en ouvrant une console PowerShell et en exécutant:

Update-Help

Image
Image
Félicitations pour l’exécution de votre première commande PowerShell! La vérité est que la commande Update-Help a beaucoup plus d'options que de simplement l'exécuter, et pour les voir, nous voudrons voir l'aide de la commande. Pour afficher l'aide relative à une commande, il vous suffit de passer le nom de la commande pour laquelle vous souhaitez obtenir de l'aide au paramètre Name de la commande Get-Help, par exemple:
Félicitations pour l’exécution de votre première commande PowerShell! La vérité est que la commande Update-Help a beaucoup plus d'options que de simplement l'exécuter, et pour les voir, nous voudrons voir l'aide de la commande. Pour afficher l'aide relative à une commande, il vous suffit de passer le nom de la commande pour laquelle vous souhaitez obtenir de l'aide au paramètre Name de la commande Get-Help, par exemple:

Get-Help –Name Update-Help

Image
Image

Vous vous demandez probablement comment interpréter tout ce texte de toute façon. Je veux dire, pourquoi la base de syntaxe contient-elle beaucoup d'informations et pourquoi y a-t-il autant de crochets? Tout d'abord, la section syntaxe contient deux blocs d'informations, car ils représentent différentes manières d'exécuter la commande. Ils sont techniquement appelés jeux de paramètres et vous ne pouvez en utiliser qu’un à la fois (vous ne pouvez pas mélanger les paramètres de différents jeux). Dans la capture d'écran ci-dessus, vous pouvez voir que le jeu de paramètres supérieur a un paramètre SourcePath alors que celui du bas ne l’est pas. La raison en est que vous utiliseriez le jeu de paramètres top (celui qui inclut SourcePath) si vous mettiez à jour vos fichiers d’aide à partir d’un autre ordinateur de votre réseau qui les avait déjà téléchargés, alors que vous n’auriez pas besoin de spécifier un chemin source. je voulais juste récupérer les derniers fichiers de Microsoft.

Pour répondre à la deuxième question, il existe une certaine syntaxe suivie par les fichiers d’aide:

  • Les crochets entourant un nom de paramètre et son type indiquent qu'il s'agit d'un paramètre facultatif et que la commande fonctionnera parfaitement sans lui.
  • Les crochets autour du nom du paramètre signifient que ce paramètre est un paramètre de position.
  • La chose à la droite d'un paramètre dans les crochets vous indique le type de données attendu par le paramètre.

Bien que vous deviez apprendre à lire la syntaxe du fichier d’aide, si vous avez des doutes sur un paramètre particulier, ajoutez simplement –Full à la fin de votre commande get help et faites défiler jusqu’à la section parameters, où il vous en dira un peu plus sur chaque paramètre. paramètre.

Get-Help –Name Update-Help –Full

La dernière chose que vous devez savoir sur le système d’aide est de savoir comment vous en servir pour découvrir les commandes, ce qui est en réalité très simple. Vous voyez, PowerShell accepte les caractères génériques presque n'importe où, aussi leur utilisation avec la commande Get-Help vous permet de découvrir facilement les commandes. Par exemple, je recherche des commandes concernant les services Windows:
La dernière chose que vous devez savoir sur le système d’aide est de savoir comment vous en servir pour découvrir les commandes, ce qui est en réalité très simple. Vous voyez, PowerShell accepte les caractères génériques presque n'importe où, aussi leur utilisation avec la commande Get-Help vous permet de découvrir facilement les commandes. Par exemple, je recherche des commandes concernant les services Windows:

Get-Help –Name *service*

Image
Image

Bien sûr, toutes ces informations ne sont peut-être pas très utiles, mais croyez-moi, prenez le temps et apprenez à utiliser le système d'aide. Cela est utile tout le temps, même pour les scripteurs avancés qui le font depuis des années.

Sécurité

Ce ne serait pas une introduction appropriée sans mentionner la sécurité. Le principal souci de l’équipe PowerShell est que PowerShell devienne le dernier et le plus important point d’attaque pour les ludiques. Ils ont mis en place quelques mesures de sécurité pour s’assurer que cela ne se produit pas, alors jetons-y un coup d’œil.

La forme de protection la plus élémentaire provient du fait que l’extension de fichier PS1 (utilisée pour désigner un script PowerShell) n’est pas enregistrée auprès d’un hôte PowerShell, mais bien enregistrée avec le Bloc-notes. Cela signifie que si vous double-cliquez sur un fichier, celui-ci s’ouvrira avec le Bloc-notes au lieu de s’exécuter.

Deuxièmement, vous ne pouvez pas exécuter de scripts à partir du shell en tapant simplement le nom du script, vous devez spécifier le chemin complet du script. Donc, si vous voulez exécuter un script sur votre lecteur C, vous devez taper:

C:

unme.ps1

Ou si vous êtes déjà à la racine du lecteur C, vous pouvez utiliser les éléments suivants:

unme.ps1

Enfin, PowerShell a quelque chose appelé Stratégies d'exécution, qui vous empêche d'exécuter n'importe quel script ancien. En fait, par défaut, vous ne pouvez exécuter aucun script et devez modifier votre stratégie d’exécution si vous souhaitez être autorisé à les exécuter. Il existe 4 règles d’exécution remarquables:

  • Limité: Il s'agit de la configuration par défaut dans PowerShell. Ce paramètre signifie qu'aucun script ne peut être exécuté, quelle que soit sa signature. La seule chose qui peut être exécutée dans PowerShell avec ce paramètre est une commande individuelle.
  • AllSigned: Ce paramètre autorise l'exécution de scripts dans PowerShell. Le script doit avoir une signature numérique associée provenant d'un éditeur approuvé. Une invite apparaît avant que vous exécutiez les scripts d'éditeurs approuvés.
  • RemoteSignedRemarque: Ce paramètre autorise l'exécution de scripts, mais requiert que le script et les fichiers de configuration téléchargés à partir d'Internet aient une signature numérique associée à partir d'un éditeur approuvé. Les scripts exécutés à partir de l'ordinateur local n'ont pas besoin d'être signés. Il n'y a pas d'invite avant d'exécuter le script.
  • Libre: Cela permet l'exécution de scripts non signés, y compris tous les scripts et les fichiers de configuration téléchargés à partir d'Internet. Cela inclura les fichiers d'Outlook et de Messenger. Le risque ici est d’exécuter des scripts sans signature ni sécurité. Nous avons recommencé que vous ne nous jamais ce réglage.

Pour voir comment votre stratégie d'exécution actuelle est définie, ouvrez une console PowerShell et tapez:

Get-ExecutionPolicy

Pour ce cours et la plupart des autres circonstances, la stratégie RemoteSigned est la meilleure. Continuez et changez votre stratégie à l'aide de ce qui suit.
Pour ce cours et la plupart des autres circonstances, la stratégie RemoteSigned est la meilleure. Continuez et changez votre stratégie à l'aide de ce qui suit.

Remarque: cette opération doit être effectuée à partir d'une console PowerShell élevée.

Set-ExecutionPolicy RemoteSigned

C’est tout pour cette fois, à demain pour un peu plus de plaisir avec PowerShell.
C’est tout pour cette fois, à demain pour un peu plus de plaisir avec PowerShell.

Clause de non-responsabilité: le terme approprié pour une commande PowerShell est une applet de commande et nous utiliserons désormais cette terminologie correcte. Il a semblé plus approprié de les appeler des commandes pour cette introduction.

Si vous avez des questions, vous pouvez me tweeter @taybgibb ou simplement laisser un commentaire.

Conseillé: