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é?

¿Fue útil?

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
scroll top