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.
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
Get-Help –Name Update-Help
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
Get-Help –Name *service*
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
Remarque: cette opération doit être effectuée à partir d'une console PowerShell élevée.
Set-ExecutionPolicy RemoteSigned
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.