Powershell - Jouer avec l'argument -PipelineVariable
Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!
Bonjour,
Dans PowerShell, le paramètre -PipelineVariable stock la valeur du pipeline courant comme variable pour une cmdlet dans les flux du pipeline.
Cela permet d’obtenir des résultats intéressant quand on utilise le pipeline.
Un grand nombre de commandes supportent le paramètre -PipelineVariable.
#Lister les cmdlets avec le paramètre pipelinevariableGet-Command -ParameterName pipelinevariable
# Exemple pour la création d'une arborescence2021, 2022 | ForEach-Object -PipelineVariable annee -process { $_ } | Foreach-Object -PipelineVariable mois -process { 1..12 | ForEach-Object {(Get-culture).DateTimeFormat.GetMonthName($_)}} | ForEach-Object -process { '{0}\{1}' -f $annee, $mois #mkdir ( '{0}\{1}' -f $annee, $mois ) }# Résultat2021\janvier2021\février...2022\novembre2022\décembre
# $année contient le résultat de "2021, 2022 | ForEach-Object -process { $_ }"# $mois contient le résultat de "Foreach-Object -process { 1..12 | ForEach-Object {(Get-culture).DateTimeFormat.GetMonthName($_)}}"
# En utilisant une autre syntaxe sans -pipelinevariable pour aider à clarifier le comportement précédent et notamment l'imbrication de boucleforeach ($annee in 2021, 2022) { foreach ($mois in (1..12 | ForEach-Object {(Get-culture).DateTimeFormat.GetMonthName($_)})) { '{0}\{1}' -f $annee, $mois #mkdir ( '{0}\{1}' -f $annee, $mois ) }}
# Un autre exemple pour listant l'appartenance au groupe d'un utilisateur dans l'AD avec -PipelineVariableGet-ADUser guillaume -PipelineVariable user -Properties memberof | Select-Object -ExpandProperty memberof | Select-Object @{ name = 'Nom'; expression = { $user.Name }}, @{ name = 'MembreDe' ; expression = { $_ -replace 'CN=|,(OU|CN)=.+' }}
# Si la cmdlet n'a pas le paramètre -PipelineVariable il est aussi possible de passer par un Where-Object1, 2, 3, 4 | Where-Object { $true } -PipelineVariable demo | ForEach-Object -Process { $demo }
Liens en relation
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Tester la connectivité réseau et l'accessibilité aux ports avec PowershellPowershell - Afficher les connections réseau (équivalent de netstat)
Afficher les connections réseau (ports en écoute, connections actives...)Powershell - Tester la résolution de nom (équivalent de nslookup)
Commandes Powershell permettant de tester la résolution de nom (équivalent de nslookup)Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Commandes Powershell permettant d'afficher et de gérer la configuration DNS des interfaces réseauPowershell - Gérer la configuration IP des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier la configuration IP des interfaces réseauPowershell - Gérer l'état et la configuration des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier l'état et la configuration des interfaces réseau (désactiver l'IPv6, activer/désactiver une interface)
Suivez-moi sur
Soutenez-moi
Contenu récent
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Powershell - Afficher les connections réseau (équivalent de netstat)
Powershell - Tester la résolution de nom (équivalent de nslookup)
Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Powershell - Gérer la configuration IP des interfaces réseau
Powershell - Gérer l'état et la configuration des interfaces réseau
Powershell et le left hand side
Powershell - Gérer les disques, les partitions et les volumes
Powershell - Gérer les points de restauration système sous Windows