排除所有基于关键字的发现

时间:2018-11-27 23:23:04

标签: powershell ntfs

https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-streams/

找到了有用的代码行
gci -Recurse | % { gi $_.FullName -Stream * } | where stream -ne ':$Data'

我已经与PowerShell失去联系已有一段时间了,因此试图弄清楚如何包括一个-Exclude函数来缩小它给我提供的输出。对象中有一个元素称为“ Stream”,当它找到字符串“ Zone.Identifier”时,我希望该对象被排除(整个对象,而不仅仅是那一行)。这是下面的输出示例。

enter image description here

我尝试了以下方法,但是没有运气。

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

1 个答案:

答案 0 :(得分:3)

-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'

(扩展别名以提高可读性)