Liaison de paramètre de pipeline
Une commande Windows PowerShell ne peut utiliser qu’un seul de ses paramètres chaque fois qu’il s’exécute pour spécifier l’objet sur lequel il opère. Lorsque vous transférez des données d’une commande à une autre, vous n’avez pas besoin de spécifier ce paramètre. Cela facilite la lecture de l’instruction de commande complète. Toutefois, il n’est pas forcément évident de savoir comment la commande fonctionne lorsque vous l’exécutez. Prenez la commande suivante :
Get-ADUser -Filter {Name -eq 'Perry Brill'} | Set-ADUser -City Seattle
Dans cet exemple, Set-ADUser accepte l’entrée de manière indirecte ; autrement dit, il a besoin d’un objet utilisateur comme entrée. Si vous exécutez Set-ADUser directement, vous pouvez passer le nom d’utilisateur pour identifier l’utilisateur, mais cette commande ne le fait pas. L'objet produit par Get-ADUser est plutôt extrait du pipeline par Set-ADUser. Set-ADUser se voit attribuer deux paramètres, pas seulement celui que vous pouvez voir. Windows PowerShell utilise de manière invisible l’autre paramètre d’un processus appelé liaison de paramètre de pipeline.
Lorsque vous connectez deux commandes dans le pipeline, la liaison de paramètre de pipeline prend la sortie de la première commande et décide de ce qu’elle doit en faire. Le processus sélectionne l’un des paramètres de la deuxième commande pour recevoir cette sortie. Windows PowerShell dispose de deux techniques pour prendre cette décision. La première technique, qui est celle que Windows PowerShell tente toujours d’utiliser en premier, est nommée ByValue. La deuxième technique est nommée ByPropertyName et elle est utilisée uniquement lorsque ByValue échoue.