Исключить любые выводы, основанные на ключевом слове - PullRequest
0 голосов
/ 28 ноября 2018

Нашел полезную строку кода из https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-streams/

gci -Recurse | % { gi $_.FullName -Stream * } | where stream -ne ':$Data'

Я некоторое время не общался с PowerShell, поэтому пытался выяснить, как включить функцию -Exclude для суженияна выходе это меня кормит.Существует элемент объекта с именем «Поток», и когда он находит строку «Zone.Identifier», я хочу исключить этот объект (целиком, а не только одну строку).Ниже приведен пример вывода.

enter image description here

Я попробовал следующее, но не повезло.

gci -Recurse | % { gi $_.FullName -Stream * -Exclude "Zone.Identifier" } | where stream -ne ':$Data'

1 Ответ

0 голосов
/ 28 ноября 2018

Используйте оператор -notin с where:

gci -recurse | % { gi $_.FullName -stream *  } | where stream -notin ':$Data','Zone.Identifier'

Вы также можете полностью пропустить % (псевдоним для ForEach-Object) и перенаправить элементы прямо на Get-Item:

Get-ChildItem -Recurse |Get-Item -Stream * |Where-Object Stream -notin ':$Data','Zone.Identifier'

(Расширенные псевдонимы для лучшей читаемости)

...