2016-05-15 11 views
-1

Nur frage mich, was ich vermisse hierPOWERSHELL Fräulein kleine Sache

Get-WindowsFeature | where {{($_.Installed -eq "$True") -and ($_.FeatureType -eq "$Role")}} | Format-List name,i 
nstalled,featuretype 

ich das Gegenteil empfange, False + true + Feature + Role ..

+0

welche Ausgabe erwarten Sie? Was ist $ Rolle? –

+0

Ich erwarte, "FeatureType" $ Rolle gibt es 3 Arten von "FeatureType: Feature, Rolle, Rollendienst – Merop4

Antwort

1

Sie brauchen nicht zwei geschweifte Klammern in Ihrem Where-Object Cmdlets, ist genug . Ich sehe $Role nicht definiert, aber nach Ihrem Kommentar nehme ich an, es ist ein String-Array und sieht so aus: $Role = @('Feature', 'role', 'role service').

Sie haben die -In Parameter verwenden, um zu überprüfen, ob die FeatureType einer der Typen in $Role, nicht -eq definiert ist. Sie können auch die Angebote auf der $true Prüfung weglassen:

+1

Sie nicht nur * können * aber * sollten * die Zitate weglassen - nicht Äpfel und Orangen vergleichen –

+0

Hi Again, Zuerst einmal danke für den Kommentar, wenn ich die geschweiften Klammern lösche funktioniert es nicht, es wird automatisch leer Ausgabe ausgegeben Ich habe Ihr Skript auch versucht und es funktioniert nicht ** Unerwartete Token 'In' ** – Merop4

+0

@ MathiasR.Jessen , wenn ich die Anführungszeichen weglasse, bekomme ich eine leere Ausgabe (nichts passiert nicht): PS P: \> Get-WindowsFeature | wo {($ _. Installiert -eq $ True) -und ($ _. FeatureType -eq $ Role)} | Format-Listenname, Feature Typ, installiert – Merop4