Nom du fournisseur

Function

Lecteurs

Function :

Description courte

Donne accès aux fonctions définies dans Windows PowerShell.

Description détaillée

Le fournisseur Function de Windows PowerShell vous permet d'obtenir, d'ajouter, de modifier, d'effacer et de supprimer des fonctions et filtres dans Windows PowerShell.

Une fonction est un bloc de code nommé qui exécute une action. Lorsque vous tapez le nom de la fonction, le code contenu dans la fonction s'exécute. Un filtre est un bloc de code nommé qui établit les conditions d'une action. Vous pouvez taper le nom du filtre au lieu de la condition, comme dans une commande Where-Object.

Sur le lecteur Function:, les fonctions sont précédées du nom « Function » et les filtres sont précédés du nom « Filter », mais ils fonctionnent correctement lorsqu'ils sont utilisés dans le contexte approprié, quel que soit le nom.

Le fournisseur Function est un espace de noms plat qui contient uniquement les objets fonction et filtre. Ni les fonctions, ni les filtres n'ont d'éléments enfants.

Chaque fonction est une instance de la classe System.Management.Automation.FunctionInfo. Chaque filtre est une instance de la classe System.Management.Automation.FilterInfo.

Les exemples de cette section montrent comment gérer les fonctions, mais les mêmes méthodes peuvent être utilisées avec les filtres.

Le fournisseur Function expose son magasin de données sur le lecteur Function:. Pour utiliser des fonctions, vous pouvez redéfinir votre emplacement pour qu'il corresponde au lecteur Function: (« set-location function: »). Vous avez également la possibilité de travailler à partir d'un autre lecteur Windows PowerShell. Pour référencer une fonction à partir d'un autre emplacement, utilisez le nom de lecteur (Function:) dans le chemin d'accès.

Le fournisseur Function prend en charge toutes les applets de commande dont le nom inclut Item (applets de commande Item), à l'exception de l'applet de commande Invoke-Item. Il prend également en charge les applets de commande Get-Content et Set-Content. Toutefois, il ne prend pas en charge les applets de commande dont le nom inclut ItemProperty (applets de commande ItemProperty) et n'accepte le paramètre Filter dans aucune applet de commande.

Toutes les modifications apportées aux fonctions affectent uniquement la console actuelle. Pour enregistrer les modifications apportées, ajoutez la fonction au profil Windows PowerShell ou utilisez Export-Console pour enregistrer la console actuelle.

Exemples

Accès au lecteur Function:

-------------------------- EXEMPLE 1 --------------------------

Remplace l'emplacement actuel par le lecteur Function:. Vous pouvez utiliser cette commande depuis n'importe quel lecteur dans Windows PowerShell. Pour revenir à un lecteur de système de fichiers, tapez le nom du lecteur. Par exemple, tapez « set-location c: ».

set-location function:

Obtention de fonctions

-------------------------- EXEMPLE 1 --------------------------

La commande suivante permet d'obtenir la liste de toutes les fonctions de la session active. Vous pouvez utiliser cette commande depuis n'importe quel lecteur Windows PowerShell.

get-childitem -path function:

-------------------------- EXEMPLE 2 --------------------------

La commande suivante obtient la fonction « man » à partir du lecteur Function:. Elle utilise l'applet de commande Get-Item pour obtenir la fonction. L'opérateur de pipeline (|) envoie le résultat à Format-Table.

Le paramètre Wrap renvoie à la ligne suivante le texte qui ne tient pas sur la ligne. Le paramètre Autosize redimensionne les colonnes de tableau pour les ajuster au texte.

get-item -path man | format-table -wrap -autosize

Si vous vous trouvez sur un lecteur différent, ajoutez le nom du lecteur (Function:) au chemin d'accès.

-------------------------- EXEMPLE 3 --------------------------

Les commandes suivantes obtiennent toutes les deux la fonction nommée « c: ». La première commande peut être utilisée sur n'importe quel lecteur. La seconde commande est utilisée sur le lecteur Function:.

Étant donné que le nom se termine par un signe deux-points (:), ce qui est la syntaxe appropriée pour un lecteur, vous devez qualifier le chemin d'accès par le nom du lecteur. Sur le lecteur Function:, vous pouvez utiliser l'un ou l'autre des formats. Dans la deuxième commande, le point (.) représente l'emplacement actuel.

c:\PS> get-item -path function:c:

PS Function> get-item -path .\c:

Création d'une fonction

-------------------------- EXEMPLE 1 --------------------------

La commande suivante utilise l'applet de commande New-Item pour créer une fonction appelée « HKLM: ». L'expression entre accolades est le bloc de script qui est représenté par le nom de la fonction.

new-item -path function:hklm: -value {set-location hklm:}

Vous pouvez également créer une fonction en la tapant sur la ligne de commande de Windows PowerShell. Par exemple, tapez « function:hklm: {set-location hklm:} ». Si vous vous trouvez sur le lecteur Function:, vous pouvez omettre le nom du lecteur. Étant donné que vous ne pouvez pas spécifier le nom « Filter » dans New-Item, les filtres portent le nom « Function », mais fonctionnent correctement avec n'importe quel nom. Pour créer un filtre avec le nom « Filter », tapez le filtre sur la ligne de commande. Par exemple, tapez « filter:Running {$_.Status -eq "Running"} ».

-------------------------- EXEMPLE 2 --------------------------

La commande suivante utilise l'applet de commande New-Item pour créer une fonction appelée Csrss. Elle utilise le paramètre dynamique Options pour spécifier la valeur ReadOnly pour la propriété Options de la fonction.

new-item -path function: -name csrss -options readonly -value {get-process csrss}

Cette commande fonctionne depuis n'importe quel emplacement. Si vous vous trouvez sur le lecteur Function:, vous pouvez utiliser un point (.) pour spécifier le chemin d'accès. Le point représente l'emplacement actuel.

Suppression d'une fonction

-------------------------- EXEMPLE 1 --------------------------

La commande suivante supprime la fonction « hklm: » de la session active.

remove-item function:hklm:

-------------------------- EXEMPLE 2 --------------------------

La commande suivante supprime toutes les fonctions de la session active, excepté celles dont la propriété Options a la valeur Constant. Sans le paramètre Force, la commande ne supprime pas les fonctions dont la propriété Options a la valeur ReadOnly.

remove-item function:* -force

Lorsque vous supprimez toutes les fonctions, l'invite de commandes change, car la fonction « prompt », qui définit le contenu de l'invite de commandes, est supprimée.

Affichage des propriétés et méthodes des fonctions

-------------------------- EXEMPLE 1 --------------------------

La commande suivante utilise l'applet de commande Get-Item pour obtenir toutes les fonctions. L'opérateur de pipeline envoie les résultats à l'applet de commande Get-Member, laquelle affiche les méthodes et propriétés de l'objet.

get-item -path function:* | get-member

Lorsque vous dirigez une collection d'objets (telle que la collection de fonctions du lecteur Function:) vers Get-Member, Get-Member évalue chaque objet de la collection séparément et retourne les informations relatives à chaque type d'objet trouvé. Si tous les objets sont du même type, elle retourne les informations relatives à ce seul type d'objet. Dans le cas présent, toutes les fonctions sont des objets FunctionInfo. Pour obtenir des informations sur la collection d'objets FunctionInfo, faites appel au paramètre InputObject de Get-Member. Par exemple, tapez « get-member -InputObject (get-item function:*) ». Lorsque vous utilisez le paramètre InputObject, Get-Member évalue la collection, et non pas les objets qu'elle contient.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante répertorie les valeurs des propriétés de la fonction « prompt ». Elle utilise l'applet de commande Get-Item pour obtenir un objet qui représente la fonction « prompt ». L'opérateur de pipeline (|) envoie les résultats à la commande Format-List. La commande Format-List utilise le paramètre Property avec un caractère générique (*) afin de mettre en forme et d'afficher les valeurs de toutes les propriétés de la fonction « prompt ».

get-item function:prompt | format-list -property *

Modification des propriétés d'une fonction

-------------------------- EXEMPLE 1 --------------------------

Vous pouvez utiliser l'applet de commande Set-Item avec le paramètre dynamique Options pour modifier la valeur de la propriété Options d'une fonction.

Cette commande définit les options AllScope et ReadOnly pour la fonction « prompt ». Elle utilise le paramètre dynamique Options de l'applet de commande Set-Item. Le paramètre Options est disponible dans Set-Item uniquement lorsque vous l'employez avec le fournisseur Alias ou Function.

set-item -path function:prompt -options "AllScope,ReadOnly"

-------------------------- EXEMPLE 2 --------------------------

La commande suivante utilise l'applet de commande Set-Item pour modifier la fonction « prompt » afin qu'elle affiche l'heure avant le chemin d'accès.

set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '}

La modification affecte à la fois les propriétés Definition et ScriptBlock de l'objet FunctionInfo. Pour vérifier l'effet de la modification, tapez « get-item -path function:prompt | format-list -property * ».

-------------------------- EXEMPLE 3 --------------------------

La commande suivante utilise l'applet de commande Rename-Item pour remplacer le nom de la fonction « help » par « gh ».

rename-item -path function:help -newname gh

Copie d'une fonction

-------------------------- EXEMPLE 1 --------------------------

La commande suivante copie la fonction « prompt » vers « oldPrompt », créant effectivement un nouveau nom pour le bloc de script associé à la fonction « prompt ». Vous pouvez utiliser cette commande pour enregistrer la fonction « prompt » d'origine si vous envisagez de la modifier.

La propriété Options de la nouvelle fonction a la valeur « None ». Pour modifier la valeur de la propriété Options, utilisez Set-Item.

copy-item -path function:prompt -destination function:oldPrompt

Paramètres dynamiques

Les paramètres dynamiques sont des paramètres d'applet de commande ajoutés par un fournisseur Windows PowerShell et qui sont disponibles uniquement lorsque l'applet de commande est utilisée dans le lecteur du fournisseur.

Options <System.Management.Automation.ScopedItemOptions>

Détermine la valeur de la propriété Options d'une fonction.

Value Description

None

Aucune option. « None » est la valeur par défaut.

Constant

La fonction ne peut pas être supprimée et ses propriétés ne peuvent pas être modifiées. La valeur Constant est disponible uniquement lorsque vous créez une fonction. Vous ne pouvez pas attribuer la valeur Constant à l'option d'une fonction existante.

Private

La fonction est visible uniquement dans la portée actuelle (et pas dans les portées enfants).

ReadOnly

Les propriétés de la fonction ne peuvent pas être modifiées, sauf si vous utilisez le paramètre Force. Vous pouvez utiliser Remove-Item pour supprimer la fonction.

AllScope

La fonction est copiée vers toutes les nouvelles portées qui sont créées.

Applets de commande prises en charge

Voir aussi




Table des matières