使用powershell进行敏感词搜索

使用powershell进行敏感词搜索,powershell,windows-7,windows-server-2008-r2,Powershell,Windows 7,Windows Server 2008 R2,我对PowerShell有点陌生,所以如果有任何帮助,我将不胜感激。 我试图把一个PS脚本放在一起,这样我就可以在将文件从一个网络传输到另一个网络之前搜索敏感词。比如“分类”和其他多个单词,我可以将它们添加到文本文件中的词库中,每次都会更新代码 现在我被迫使用PS2Windows7和Server2008 Select-String -Path e:\transfer_folder\*.* -pattern Classified,restricted 然后,我可以得到单词列表中任何点击的输出,这

我对PowerShell有点陌生,所以如果有任何帮助,我将不胜感激。 我试图把一个PS脚本放在一起,这样我就可以在将文件从一个网络传输到另一个网络之前搜索敏感词。比如“分类”和其他多个单词,我可以将它们添加到文本文件中的词库中,每次都会更新代码

现在我被迫使用PS2Windows7和Server2008

Select-String -Path e:\transfer_folder\*.* -pattern Classified,restricted

然后,我可以得到单词列表中任何点击的输出,这样我就可以找到它们。我正试图通过我喜欢称之为“脏词搜索”的方法来加快我在数百页文档中的搜索速度,这样我就不会把不应该出现在错误网络上的内容放到错误网络上。

你的想法是对的。通常可以调用powershell中的
-Pattern
tack来处理正则表达式。如果您从未使用过正则表达式,请看看这个。您可能需要的是一组变量,您可以使用这些变量动态地选择那些敏感关键字

简短而简单的答案是,您希望使用管道来分隔模式的选项,并将其作为字符串传递

选择字符串-路径e:\transfer_folder\*.-模式“分类|受限”

此外,您可能希望考虑在文件级别执行此操作,而不是像那样在willynilly中导入所有内容。我会选择这样的方式:

$files=@(获取ChildItem-路径E:\transfer\u folder \-Filter“*.txt”\*.etc”)。全名

@
符号表示以数组形式获取输出。
.FullName
表示仅从命令生成的对象中选择FullName字段。)

然后您可以单独处理每个文件,如:

Foreach ($file in $files) {
   Write-Host "Processing $file"
   echo (Select-String -Path $file -Pattern $pattern) 
}
我喜欢powershell的原因之一是执行这些类型的匹配操作相对来说是多么容易。如果深入研究正则表达式,您会注意到您可以表示“或”为“|”。因此,您有两个选项可以逻辑地执行此操作:

  • 把它硬写出来
  • $pattern=“分类|禁止|死亡|危险”

  • 动态地做
  • 脚本编写就是不必做一次以上的事情,对吗?因此,您可能希望将其封装在函数或其他东西中。或者你想从文本文件中获取你的文字?你可以像: (可能需要一些调整)

    现在,您可以将其放在powershell配置文件中,并使用


    获取禁止的单词-words secret-dangery-whatever-folder E:\transfer\u folder\

    你的想法是对的。通常可以调用powershell中的
    -Pattern
    tack来处理正则表达式。如果您从未使用过正则表达式,请看看这个。您可能需要的是一组变量,您可以使用这些变量动态地选择那些敏感关键字

    简短而简单的答案是,您希望使用管道来分隔模式的选项,并将其作为字符串传递

    选择字符串-路径e:\transfer_folder\*.-模式“分类|受限”

    此外,您可能希望考虑在文件级别执行此操作,而不是像那样在willynilly中导入所有内容。我会选择这样的方式:

    $files=@(获取ChildItem-路径E:\transfer\u folder \-Filter“*.txt”\*.etc”)。全名

    @
    符号表示以数组形式获取输出。
    .FullName
    表示仅从命令生成的对象中选择FullName字段。)

    然后您可以单独处理每个文件,如:

    Foreach ($file in $files) {
       Write-Host "Processing $file"
       echo (Select-String -Path $file -Pattern $pattern) 
    }
    
    我喜欢powershell的原因之一是执行这些类型的匹配操作相对来说是多么容易。如果深入研究正则表达式,您会注意到您可以表示“或”为“|”。因此,您有两个选项可以逻辑地执行此操作:

  • 把它硬写出来
  • $pattern=“分类|禁止|死亡|危险”

  • 动态地做
  • 脚本编写就是不必做一次以上的事情,对吗?因此,您可能希望将其封装在函数或其他东西中。或者你想从文本文件中获取你的文字?你可以像: (可能需要一些调整)

    现在,您可以将其放在powershell配置文件中,并使用


    获取禁止的单词-words secret hazards whatever-文件夹E:\transfer\u folder\

    为什么要编写此脚本,而Windows本身专门为此提供了企业服务。查看FSRM/FCI文档。------为什么要编写此脚本,而Windows本身专门为此提供了企业服务。查看FSRM/FCI文档。------