Si vous avez utilisé ipconfig ou ping via l’invite de commande, vous êtes à mi-chemin pour devenir un ninja PowerShell. Alors venez nous rejoindre alors que nous découvrons les applets de commande dans cette installation de Geek School.
N’oubliez pas de consulter notre premier article présentant PowerShell et restez à l’écoute pour le reste de notre série toute la semaine.
L’anatomie d’une cmdlet
Dans la première partie de la série, nous avons vu une applet de commande qui ressemblait à ceci:
Aide à la mise à jour
Les applets de commande PowerShell ont une syntaxe Verb-Noun, qui peut être vue ci-dessus. La chose importante à noter est que le nom est toujours singulier même si l’applet de commande peut renvoyer plusieurs résultats. Pour afficher une liste des verbes juridiques dans PowerShell, vous pouvez utiliser l’applet de commande Get-Verb.
Connaître les verbes légaux et se souvenir de la règle du nom au singulier aide vraiment à deviner les noms des applets de commande. Par exemple, supposons que vous vouliez avoir une liste de prestations de service et leur statut – c’est vrai, c’est aussi simple que Get-Service. Comment pensez-vous que nous pourrions avoir une liste de course processus – c’est vrai, Get-Process fera l’affaire.
Get-Process
Cela rend très facile de travailler avec n’importe quelle technologie. Par exemple, si vous aviez les applets de commande Exchange chargées, nous pourrions facilement obtenir une liste des boîtes aux lettres sur le serveur en utilisant:
Get-Mailbox
Cependant, il existe une exception. En dehors de l’échange, toutes les autres commandes spécifiques à la technologie nécessiteront un préfixe. Par exemple, si nous voulions obtenir les utilisateurs actuellement connectés via Remote Desktop, nous saisirions:
Get-RDUserSession
Ce qui peut être vu dans la capture d’écran ci-dessous.
Il y a quelque temps, j’ai lu un article de Don Jones, le parrain de PowerShell, dans lequel il expliquait qu’Exchange était livré avant que ce préfixe ne soit ajouté aux applets de commande, il ne les a donc jamais implémentés et ne le sera jamais.
Alias
Une autre fonctionnalité fournie par PowerShell est la possibilité d’exécuter plusieurs façons d’exécuter la même commande – des alias, si vous voulez. Ce qui est génial à leur sujet, c’est qu’ils comprenaient de nombreuses commandes que vous utilisiez peut-être dans l’invite de commande, ainsi que des alias Linux. Par exemple, dans PowerShell, nous pouvons obtenir une liste de répertoires en utilisant:
Get-ChildItem
Vous avez l’habitude d’utiliser l’invite de commande? Ne vous inquiétez pas, ils vous ont couvert.
Vous avez une formation Linux? Ils vous ont également couvert.
Lorsque vous créez des scripts depuis quelques années, vous avez tendance à être paresseux et à commencer à utiliser beaucoup d’alias, mais cela n’aide pas les nouveaux venus qui vont lire notre code. Pour voir quelle commande un alias exécute sous le capot, vous pouvez utiliser ce qui suit:
Get-Alias - Nom ls
D’un autre côté, si vous pensez qu’il est temps d’intensifier votre jeu, vous pouvez utiliser le paramètre de définition pour obtenir tous les alias d’une applet de commande:
Get-ChildItem –Definition Get-ChildItem
Si vous venez d’un autre arrière-plan, vous pouvez ajouter vos propres alias en procédant comme suit:
Nouvel alias –Nom icanhazfilez –Valeur Get-ChildItem
Évidemment, vous devrez remplacer «icanhazfilez» par le nom de votre nouvel alias et Get-ChildItem par l’applet de commande que vous voulez qu’il exécute sous le capot.
Une chose à noter est que vous perdez tous les alias que vous avez définis lorsque vous fermez le shell. Vous pouvez contourner ce problème en ajoutant leur définition à votre script de profil.
Paramètres de troncature
Windows PowerShell vous permet également de tronquer les noms de paramètres jusqu’au point où ils deviennent ambigus, c’est-à-dire jusqu’au point où PowerShell ne peut plus déterminer de quel paramètre vous parlez. Par exemple:
Get-Service -Name ‘Apple Mobile Device’ -ComputerName localhost
Est le même que:
Get-Service -Na ‘Apple Mobile Device’ -Com localhost
Si, par hasard, vous rendez les noms de paramètres trop ambigus, vous obtiendrez une erreur.
Commandes héritées
Enfin, les commandes que vous connaissez et aimez fonctionneront toujours dans PowerShell.
ping www.google.com
Rappelez-vous simplement que les applications héritées telles que ping génèrent une chaîne et qu’il existe souvent un meilleur moyen de faire la même chose à l’aide d’une applet de commande PowerShell.
Au lieu de produire une longue chaîne de texte, nous nous retrouvons maintenant avec un objet, que nous examinerons dans l’édition de demain de la Geek School.