École Geek apprenant à utiliser des cmdlets dans PowerShell
Si vous avez utilisé ipconfig ou ping via l'invite de commande, vous êtes sur le point de devenir un ninja PowerShell. Alors viens et rejoins-nous pour découvrir les applets de commande dans cette installation de Geek School.
Assurez-vous de consulter notre premier article présentant PowerShell et restez à l'affût pour le reste de notre série tout au long de la semaine..
L'anatomie d'un cmdlet
Dans la première partie de la série, nous avons vu une cmdlet ressemblant à ceci:
Aide de mise à jour
Les applets de commande PowerShell ont une syntaxe Verb-Noun, qui peut être vue ci-dessus. Il est important de noter que le nom est toujours singulier, même si la cmdlet peut renvoyer plusieurs résultats. Pour afficher une liste des verbes légaux 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 singulier aide vraiment à deviner les noms des applets de commande. Par exemple, supposons que vous vouliez obtenir une liste de prestations de service et leur statut - c'est vrai, c'est aussi simple que Get-Service. Comment pensez-vous que nous obtenir une liste de course les processus - c'est vrai, Get-Process fera l'affaire.
Get-Process
Cela facilite vraiment le travail avec n'importe quelle technologie. Par exemple, si les cmdlets Exchange étaient 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 souhaitons obtenir les utilisateurs actuellement connectés via Remote Desktop, nous tapons:
Get-RDUserSession
Ce qui peut être vu dans la capture d'écran ci-dessous.
Remarque: cette capture d'écran a été prise sur une boîte Server 2012 car c'est là que vous allez trouver la plupart des modules spécifiques à la technologie..
Il y a quelque temps, j'ai lu un article de Don Jones, le parrain de PowerShell, dans lequel il expliquait qu'Exchange avait été envoyé avant que ce préfixe ne soit ajouté aux cmdlets. Elle ne les implémentait donc jamais et ne le ferait jamais..
Alias
Une autre fonctionnalité fournie par PowerShell est la possibilité de disposer de plusieurs manières d’exécuter la même commande - alias, si vous voulez. Ce qui est génial avec eux, c’est qu’ils ont inclus 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
Utilisé pour utiliser l'invite de commande? Ne vous inquiétez pas, ils vous ont couvert.
Vous avez un background Linux? Ils vous ont couvert là aussi.
Lorsque vous utilisez des scripts depuis quelques années, vous avez tendance à devenir paresseux et à commencer à utiliser beaucoup de pseudonymes, mais cela n’aide pas les nouveaux arrivants qui liront notre code. Pour voir quelle commande un alias est exécuté sous le capot, vous pouvez utiliser les éléments suivants:
Get-Alias -Name ls
D'autre part, si vous estimez qu'il est temps d'améliorer votre jeu, vous pouvez utiliser le paramètre definition pour obtenir tous les alias d'une applet de commande:
Get-ChildItem -Definition Get-ChildItem
Si vous venez d'un autre contexte, vous pouvez ajouter vos propres alias en procédant comme suit:
New-Alias -Name icanhazfilez -Value Get-ChildItem
Évidemment, vous devrez remplacer «icanhazfilez» par le nom de votre nouvel alias et Get-ChildItem par l'applet de commande que vous souhaitez utiliser 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 moment où PowerShell ne peut plus déterminer le paramètre dont vous parlez. Par exemple:
Get-Service -Name 'Apple Mobile Device' - Nomordinateur localhost
Est le même que:
Get-Service -Na 'Appareil mobile Apple' -Com localhost
Si 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 toujours fonctionneront dans PowerShell..
ping www.google.com
Rappelez-vous simplement que les applications héritées telles que ping produisent 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 sortir une longue chaîne de texte, il nous reste un objet, que nous examinerons dans l'édition de demain de Geek School.