Comment utiliser les fonctions dans PowerShell

Comment utiliser les fonctions dans PowerShell
Si vous voulez utiliser Scripts PowerShell et commandes Dans différents scénarios, vous pouvez les transformer en réutilisable les fonctions. PowerShell a beaucoup de flexibilité dans la façon dont vous représentez le code dans un script.

Si vous poursuivez l'écriture de centaines de lignes de codes dans un seul bloc de code, ce n'est pas la méthode appropriée car il est généralement difficile de lire un gros bloc de code. Vous pouvez le décomposer en petites fonctions pour rendre le programme plus compréhensible, organisé et réutilisable.

Qu'est-ce qu'une fonction dans PowerShell?

Dans PowerShell, un fonction est une collection de code avec entrée et sortie en option. C'est la formation d'une séquence d'instructions pour en exécuter une ou plusieurs fois en l'invoquant simplement plutôt que de la copier à plusieurs reprises. La fonction améliore considérablement la lisibilité et la convivialité de votre code, ce qui facilite le traitement du code répété.

Il prend des paramètres en entrée et renvoie les valeurs attribuées à certaines variables, tuyaux à d'autres fonctions, ou cmdlettes comme entrée ou affichée comme sortie sur l'écran. Plutôt que de répéter le code, la fonction peut être appelée autant de fois que nécessaire après avoir été définie dans le script. Dans PowerShell, il existe deux types de fonctions: de base et avancée.

Fonctions de base dans PowerShell

La forme la plus simple d'une fonction que nous pouvons créer dans PowerShell est appelée ««basique" fonction. Ces fonctions n'utilisent aucune des fonctionnalités intégrées. Un ensemble de accolades est utilisé pour définir le corps de la fonction. Lorsque vous travaillez avec des fonctions PowerShell, l'option la plus simple pour les administrateurs est d'utiliser des fonctions de base car ces fonctions n'ont aucune fonctionnalité héritée. Vous devez définir explicitement tous les flux d'erreur dans le code de votre fonction.

Fonctions avancées dans PowerShell

Fonctions avancées ont les mêmes propriétés que les fonctions de base, mais elles incluent des fonctionnalités supplémentaires que les fonctions de base n'ont pas. Par exemple, PowerShell contient des flux comme Verbose, Avertissement, Debug, Error, etc. Ces flux sont essentiels pour afficher la sortie avec précision.

Création de fonctions de base dans PowerShell

Maintenant, nous allons vérifier la méthode de création de fonctions de base dans PowerShell. Pour cela, ouvrez votre Windows PowerShell Ise et créer un nouveau fichier.

Le Mot-clé fonction est utilisé pour déclarer une fonction dans PowerShell, suivie par le Nom de la fonction et accolades. Le code ou le corps de la fonction se trouve dans ces accolades bouclées .

Fonction Get-Version
$ Psversiontable.Psversion

Nous allons exécuter ceci "Version”Fonction au moment de l'exécution. Maintenant, enregistrez le script comme «TestFile1.PS1"Et exécutez-le.

Dans le terminal PowerShell, appelez la fonction créée en utilisant son nom.

> Get-Version

Il vous montrera la sortie suivante:

À mesure que la fonction est chargée dans la mémoire de votre système, vous pouvez afficher les fonctions sur la fonction PsDrive. Pour cela, utilisez le «Get-Childitem”Commande pour vérifier les éléments enfants de la fonction psdrive. Ici le "-Chemin”L'option est utilisée pour spécifier le chemin de la fonction PSDRIVE.

> Get-Childem -Path Fonction: \ Get- * version

Depuis la session en cours, vous pouvez supprimer la fonction définie en utilisant le «Retirer l'objet" commande. Exécutez la commande ci-dessous à cet effet.

> Get-ChildItem -Path Fonction: \ get- * Version | Retirer l'objet

Utilisez l'opérateur de tuyau ["|«] Afin que la commande tune les éléments enfants de la fonction psdrive au«Retirer l'objet" commande. Puis le "Retirer l'objet»Cmdlet supprimera les fonctions créées de la session.

Pour vérifier la suppression de la fonction, invoquez le «Version" fonction. Il vous montrera la sortie suivante:

Paramètre de fonctions dans PowerShell

Maintenant, nous allons écrire une fonction qui interroge toutes les commandes d'un système et renvoie le nombre de commandes avec certains noms de paramètres. Si vous voulez le faire, exécutez le script ci-dessous dans votre PowerShell:

function get-mrParameterCount
param (
[String []] $ Parametername
)
foreach ($ paramètre dans $ parametername)
$ Résultats = get-command -Parametername $ Paramètre-ErrorActionSillyContinue
[PSCustomObject] @
Paramètre paramètre = $
NumberOfcMdlets = $ Résultats.Compter


Maintenant, nous avons invoqué le «Get-mrParameterCount”Avec les paramètres:

Nom d'ordinateur, ordinateur, nom de serveur, hôte et machine:

> Get-mrParameterCount -Parametername ComputerName, ordinateur, nom de serveur, hôte, machine

Création de fonctions avancées dans PowerShell

Il est vraiment facile de transformer une fonction PowerShell de base en une fonction avancée. Les fonctions avancées présentent plusieurs paramètres communs qui sont automatiquement ajoutés à la fonction. Maintenant, nous transformerons la fonction de base définie dans la section précédente en une fonction avancée:

fonction test-mrparamètre
param (
$ Nom
)
Écriture-sortie $ computation

Notez que le «Test-mrparamètre»La fonction n'a pas de paramètre commun. Les paramètres communs peuvent être visualisés de différentes manières. Une méthode consiste à utiliser "Se mettre en commun" avec le "-Syntaxe”Option pour regarder la syntaxe:

> Get-Command -name Test-MrParameter -Syntax

Pour faire de la fonction une fonction avancée, ajoutez "Cmdletbinding»:

fonction test-mrcmdletbinding
[Cmdletbinding ()] #<<-- This turns a regular function into an advanced function
param (
$ Nom
)
Écriture-sortie $ computation

Encore une fois, vous pouvez vérifier la syntaxe et les paramètres de cette fonction avancée en exécutant les commandes divisées:

> Get-Command -name test-mrcmdletbinding -Syntax> (get-command -name test-mrcmdletbinding).Paramètres.Clés

Conclusion

Vous pouvez diviser le code en blocs de construction distincts en utilisant Fonctions dans PowerShell. Ils vous aident non seulement à décomposer votre code en pièces plus petites et plus gérables, mais ils vous poussent également à produire un code testable et lisible.

Les fonctions améliorent également considérablement la lisibilité et la convivialité de votre code, ce qui facilite le traitement du code répété. Cet article vous montre quelques méthodes d'utilisation les fonctions dans Powershell, y compris les bases et avancées.