Comment filtrer plusieurs éléments du registre en utilisant whrere-object -like ?
-
21-12-2019 - |
Question
J'essaie d'obtenir quelques éléments du registre en utilisant where-object
, je ne peux filtrer qu'un seul élément mais plusieurs éléments... y a-t-il un problème avec mon script ?
Ce le code fonctionne bien pour un seul élément
Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ |
ForEach-Object {Get-ItemProperty $_.pspath} |
Where-Object {
$_.Displayname -like 'adobe air'
} |
Select-Object DisplayName,DisplayVersion |
Sort-Object DisplayName |
Out-GridView
Mais si je le configure pour filtrer plusieurs éléments, il s'exécute, se termine, sans aucun résultat...une idée de pourquoi ?
Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ |
ForEach-Object {Get-ItemProperty $_.pspath} |
Where-Object {
$_.Displayname -like 'adobe air' -and
$_.Displayname -like 'Java*' -and
$_.Displayname -like 'TeamViewer*'
} |
Select-Object DisplayName,DisplayVersion |
Sort-Object DisplayName |
Out-GridView
Si j'utilise
Where-Object {
$_.Displayname -like "Security*"
}
Cela ne me donne que 3 éléments correspondants Security
, pas tous, pourquoi ?
La solution
Le problème c'est la logique que vous mettez en place. -and
signifie que les deux doivent être vrais, utilisez -or
plutôt.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow