Comment utiliser les fonctions PowerShell

  1. Différence entre les Fonctions et les Cmdlets dans PowerShell
  2. Introduction aux Fonctions dans PowerShell
  3. Ajouter des Paramètres aux Fonctions dans PowerShell
  4. Créer un Paramètre Simple sur une Fonction dans PowerShell
Comment utiliser les fonctions PowerShell

Lorsque nous écrivons un script PowerShell, nous avons de nombreuses options. Par exemple, nous pourrions écrire mille lignes de code pour des tâches, tout dans un seul bloc de code.

Cependant, cela serait compliqué. Donc, à la place, nous devrions écrire des fonctions PowerShell.

Les fonctions PowerShell augmentent considérablement l’utilisabilité et la lisibilité de notre code, le rendant beaucoup plus facile à utiliser. Dans cet article, nous apprendrons à écrire des fonctions, à ajouter et gérer les paramètres de nos fonctions, et à configurer les fonctions pour accepter une entrée de pipeline.

Différence entre les Fonctions et les Cmdlets dans PowerShell

Le concept d’une fonction PowerShell pourrait sembler familier car il ressemble aux cmdlets natifs de PowerShell. Des commandes comme Write-Host et Start-Service, par exemple, sont très similaires aux fonctions.

Cependant, les cmdlets sont des morceaux de code nommés qui résolvent un seul problème et ne sont pas facilement personnalisables. La différence entre une cmdlet et une fonction réside dans la manière dont ces constructeurs sont réalisés.

Nous pouvons voir quelles commandes sont des cmdlets et quelles sont des fonctions en utilisant la cmdlet Get-Command et son paramètre -CommandType.

Get-Command -CommandType Function

La commande ci-dessus renvoie toutes les fonctions actuellement chargées dans notre session PowerShell ou dans les modules disponibles pour PowerShell.

Introduction aux Fonctions dans PowerShell

Nous utilisons le mot-clé function pour définir une fonction, suivi d’un nom descriptif défini par l’utilisateur et d’un ensemble d’accolades. À l’intérieur des accolades se trouve un bloc de script que nous voulons que PowerShell exécute.

Ci-dessous, nous pouvons voir une fonction principale et son exécution. La fonction, appelée Install-Software, utilise Write-Host pour afficher un message de sortie dans la console (principalement pour simuler une installation).

Une fois définie, nous pouvons utiliser le nom de cette fonction pour exécuter le code à l’intérieur de son bloc de script.

Exemple de Code :

function Install-Software {
    Write-Host 'The software has been installed.'
}

Install-Software

Sortie :

The software has been installed.

Meilleure Pratique de Convention de Nommage de Fonction avec la Syntaxe Verbe-Nom dans PowerShell

Le nom d’une fonction est essentiel. Nous pouvons nommer nos fonctions comme nous le voulons, mais le nom doit toujours décrire ce que fait la fonction.

La meilleure pratique de convention de nommage de fonction dans PowerShell est la syntaxe Verbe-Nom.

Nous devons toujours commencer un nom de fonction par un verbe suivi d’un tiret et d’un nom. Utilisez la cmdlet Get-Verb pour trouver la liste des verbes approuvés.

Définir une Fonction Avancée dans PowerShell

Ce tutoriel suppose que nous avons copié et collé le code précédent directement dans la console PowerShell dans cette section. Nous pouvons également définir des fonctions dans un script.

Nous avons travaillé avec une petite fonction dans la section précédente, donc la définir dans la console n’était pas trop un problème. La plupart du temps, cependant, nous aurons des fonctions beaucoup plus grandes.

Il sera donc plus facile de définir ces fonctions dans un script ou un module, puis d’appeler ce script ou ce module pour charger la fonction en mémoire.

Comme nous pouvons l’imaginer, retaper une fonction plus importante chaque fois que nous voulons ajuster sa fonctionnalité pourrait être déroutant.

Ajouter des Paramètres aux Fonctions dans PowerShell

Les fonctions peuvent avoir n’importe quel nombre de paramètres. Lorsque nous créons nos fonctions, nous aurons la possibilité d’inclure des paramètres et de décider comment ces paramètres fonctionnent.

Les paramètres peuvent être facultatifs ou obligatoires, et ils peuvent soit être forcés d’accepter un des arguments d’une liste limitée ou accepter n’importe quoi.

Par exemple, le logiciel fictif que nous installons via la fonction Install-Software pourrait avoir de nombreuses versions possibles antérieures. Mais actuellement, la fonction Install-Software n’offre pas à l’utilisateur de moyen de spécifier quelle version il souhaite installer.

Si nous étions les seuls à utiliser la fonction, nous pourrions modifier le code à l’intérieur chaque fois que nous voudrions une version spécifique, mais cela prendrait beaucoup de temps. Cette méthode serait également sujette à des erreurs potentielles, et nous voulons que d’autres puissent utiliser notre code.

Introduire des paramètres dans notre fonction lui permet d’avoir de la variabilité. Tout comme les variables nous ont permis d’écrire des scripts capables de gérer de nombreuses versions de la même situation, les paramètres nous permettront d’écrire une seule fonction qui fait une chose de plusieurs manières.

Dans ce cas, nous voulons qu’elle installe des versions du même logiciel et ce, sur de nombreux ordinateurs.

Tout d’abord, ajoutons un paramètre à la fonction qui permet à un utilisateur ou à nous de spécifier la version à installer.

Créer un Paramètre Simple sur une Fonction dans PowerShell

Définir un paramètre sur une fonction nécessite un bloc de paramètres. Le bloc de paramètres contient tous les paramètres pour la fonction.

Définissez un bloc de paramètres avec le mot-clé param suivi de parenthèses, comme montré ci-dessous.

Exemple de Code :

function Install-Software {
    [CmdletBinding()]
    param()

    Write-Host 'The software has been installed.'
}

À ce stade, la fonctionnalité réelle de notre fonction n’a pas changé d’un seul iota. Nous avons juste installé la plomberie, préparant la fonction pour un paramètre.

Une fois que nous avons ajouté le bloc param, nous pouvons créer le paramètre en le mettant entre ses parenthèses, comme montré ci-dessous.

Exemple de Code :

function Install-Software {
    [CmdletBinding()]
    param(
        [Parameter()]
        [string] $Version
    )

    Write-Host "The software version $Version has been installed."

}

À l’intérieur du bloc param ci-dessus, nous définirions d’abord le bloc Parameter. Utiliser le bloc Parameter() transformera le paramètre en un “paramètre avancé”.

Un bloc param vide comme celui-ci ne fait rien mais est requis ; nous expliquerons comment l’utiliser dans la prochaine section.

Concentrons-nous sur le type [string] devant le nom du paramètre. Nous castons les paramètres en mettant le type du paramètre entre crochets avant le nom de la variable de paramètre.

PowerShell considérera toujours par défaut les valeurs comme une chaîne. Ci-dessus, tout ce qui est passé dans la variable $Version sera toujours traité comme une chaîne.

Nous ajoutons également $Version dans notre instruction Write-Host. Ensuite, lorsque nous exécutons la fonction Install-Software avec le paramètre Version et lui passons un numéro de version, nous devrions obtenir un message le montrant.

Exemple de Code :

Install-Software -Version 2

Sortie :

The software version 2 has been installed.
Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Article connexe - PowerShell Function