¿Cómo filtrar varios elementos del registro utilizando whrere-object -like?
-
21-12-2019 - |
Pregunta
Estoy intentando obtener algunos elementos del registro usando where-object
, Solo puedo filtrar un elemento pero varios elementos... ¿Hay algún problema con mi secuencia de comandos?
Este El código funciona bien para un solo elemento.
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
Pero si lo configuro para filtrar varios elementos, se ejecuta, finaliza, sin ningún resultado...¿Alguna idea de por qué?
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 uso
Where-Object {
$_.Displayname -like "Security*"
}
Sólo me da coincidencias de 3 artículos. Security
, no todos, ¿Por qué?
Solución
El tema es la lógica que le pones. -and
significa que ambos deben ser ciertos, use -or
en cambio.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow