Frage

Ich versuche, mithilfe von einige Elemente aus der Registrierung abzurufen where-object, ich kann nur ein Element filtern, aber mehrere Elemente... Stimmt etwas mit meinem Skript nicht?

Das Der Code funktioniert nur für einen Artikel einwandfrei

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

Aber Wenn ich es so einstelle, dass mehrere Elemente gefiltert werden, läuft es und endet ohne Ergebnis ...Irgendeine Idee warum?

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

Wenn ich es benutze

Where-Object {
$_.Displayname -like "Security*"
}

Es gibt mir nur 3 Treffer Security, nicht alle. Warum?

War es hilfreich?

Lösung

Das Problem ist die Logik, die Sie eingegeben haben. -and bedeutet, dass beide wahr sein müssen, verwenden -or stattdessen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top