RUBRIQUE
    about_Functions_Advanced

DESCRIPTION COURTE
    Présente les fonctions avancées qui agissent comme des applets de 
    commande.

DESCRIPTION LONGUE
    Les fonctions avancées vous permettent d'écrire des fonctions capables 
    d'exécuter des opérations semblables à celles exécutées par les applets 
    de commande. Les fonctions avancées sont utiles lorsque vous souhaitez 
    écrire rapidement une fonction sans devoir écrire une applet de commande 
    compilée à l'aide d'un langage Microsoft .NET Framework. Ces fonctions 
    sont également utiles lorsque vous souhaitez restreindre les fonctionnalités 
    d'une applet de commande compilée ou lorsque vous souhaitez écrire une 
    fonction semblable à une applet de commande compilée.
 

    Il y a une différence entre créer une applet de commande compilée 
    et une fonction avancée. Les applets de commande compilées sont des 
    classes .NET Framework qui doivent être écrites dans un langage .NET 
    Framework tel que C#. À l'inverse, les fonctions avancées sont écrites 
    en langage de script Windows PowerShell, tout comme les autres fonctions 
    ou blocs de script.


    Les fonctions avancées utilisent l'attribut CmdletBinding pour 
    s'identifier en tant que fonctions agissant comme des applets de 
    commande. L'attribut CmdletBinding est semblable à l'attribut 
    Cmdlet utilisé dans les classes d'applets de commande compilées 
    pour identifier la classe en tant qu'applet de commande. Pour 
    plus d'informations sur cet attribut, consultez 
    about_Functions_CmdletBindingAttribute.


    L'exemple suivant présente une fonction qui accepte un nom, puis 
    imprime un message d'accueil en utilisant le nom fourni. Notez 
    également que cette fonction définit un nom qui inclut un verbe 
    (Envoyer) et une paire de substantifs (Message d'accueil) 
    semblable à la paire verbe-substantif d'une applet de commande 
    compilée. Toutefois, les fonctions ne doivent pas obligatoirement 
    comporter un nom de type verbe-substantif. 


        function Send-Greeting
        {
          [CmdletBinding()]
          Param(
              [Parameter(Mandatory=$true)]
              [chaîne] $Name
          )
          Process
          {
            write-host ("Bonjour " + $Name + "!") 
          }
        }


    Les paramètres de la fonction sont déclarés à l'aide de 
    l'attribut Parameter. Cet attribut peut être utilisé seul ou combiné 
    à l'attribut Alias ou avec plusieurs autres attributs de validation 
    de paramètres. Pour plus d'informations sur la façon de déclarer des 
    paramètres (notamment des paramètres dynamiques ajoutés pendant 
    l'exécution), consultez about_Functions_Advanced_Parameters. 
 

    Le travail réel de la fonction précédente est exécuté dans le 
    bloc Process, qui équivaut à la méthode ProcessingRecord utilisée 
    par les applets de commande compilées pour traiter les données 
    passées à l'applet de commande. Ce bloc, tout comme les blocs 
    Begin et End, est décrit dans la rubrique about_Functions_Advanced
    _Methods.


    Les fonctions avancées diffèrent des applets de commande 
    compilées pour les raisons suivantes : 

        - La liaison des paramètres des fonctions avancées ne lève pas 
          d'exception lorsqu'un tableau de chaînes est lié à un paramètre 
          booléen.

        - L'attribut ValidateSet et l'attribut ValidatePattern ne 
          peuvent pas passer de paramètres nommés.

        - Les fonctions avancées ne peuvent pas être utilisées dans les 
          transactions.

   
VOIR AUSSI
    about_Functions_Advanced_CmdletBindingAttribute 
    about_Functions_Advanced_Methods  
    about_Functions_Advanced_Parameters 
    Windows PowerShell Cmdlets (en anglais) 
    (https://go.microsoft.com/fwlink/?LinkID=135279) 




Table des matières