为什么此 Powershell 脚本会提取意外文件以进行 ipv4 搜索?
Why is this Powershell Script pulling unexpected files for ipv4 search?
我构建了一个强大的 shell 脚本来查找包含 ipv4 地址的配置文件。但是,该脚本返回的文件没有 IP 地址。以下脚本返回以下文件信息:
返回文件之一:"C:\SoftwareDevelopment\SourceCode\subversion\branches\SACB_Sprint1\packages\EntityFramework.6.1.0\content\App.config.transform"
以下是该文件的内容:
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
</configuration>
下面是 PowerShell 脚本:
$Path = "C:\SoftwareDevelopment\SourceCode\subversion\branches\"
$Text = "\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
$PathArray = @()
$Results = "C:\temp\IPV4SearchResults.txt"
Get-ChildItem $Path -Filter "*.config*" -recurse > $Results
Where-Object { $_.Attributes -ne "Directory"} |
ForEach-Object {
If (Get-Content $_.FullName | Select-String -Pattern $Text) {
$PathArray += $_.FullName
$PathArray += $_.FullName
}
}
我稍微修改了你的脚本。我用 2 个文件对其进行了测试,一个使用您发布的匹配文件中的示例代码,第二个使用相同的代码以及一个 IPv4 地址,并且只有一个 IPv4 地址匹配。
试一试:
$Path = "C:\SoftwareDevelopment\SourceCode\subversion\branches\"
$Text = "\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
$PathArray = @()
$Results = "C:\temp\IPV4SearchResults.txt"
$foundfiles = Get-ChildItem $Path -Filter "*.config*" -recurse | Where-Object { $_.Attributes -ne "Directory"}
$foundfiles | % {
If (Get-Content $_.FullName | Select-String -Pattern $Text) {
$PathArray += $_.FullName
}
}
$Patharray > $results
我构建了一个强大的 shell 脚本来查找包含 ipv4 地址的配置文件。但是,该脚本返回的文件没有 IP 地址。以下脚本返回以下文件信息:
返回文件之一:"C:\SoftwareDevelopment\SourceCode\subversion\branches\SACB_Sprint1\packages\EntityFramework.6.1.0\content\App.config.transform"
以下是该文件的内容:
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
</configuration>
下面是 PowerShell 脚本:
$Path = "C:\SoftwareDevelopment\SourceCode\subversion\branches\"
$Text = "\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
$PathArray = @()
$Results = "C:\temp\IPV4SearchResults.txt"
Get-ChildItem $Path -Filter "*.config*" -recurse > $Results
Where-Object { $_.Attributes -ne "Directory"} |
ForEach-Object {
If (Get-Content $_.FullName | Select-String -Pattern $Text) {
$PathArray += $_.FullName
$PathArray += $_.FullName
}
}
我稍微修改了你的脚本。我用 2 个文件对其进行了测试,一个使用您发布的匹配文件中的示例代码,第二个使用相同的代码以及一个 IPv4 地址,并且只有一个 IPv4 地址匹配。
试一试:
$Path = "C:\SoftwareDevelopment\SourceCode\subversion\branches\"
$Text = "\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
$PathArray = @()
$Results = "C:\temp\IPV4SearchResults.txt"
$foundfiles = Get-ChildItem $Path -Filter "*.config*" -recurse | Where-Object { $_.Attributes -ne "Directory"}
$foundfiles | % {
If (Get-Content $_.FullName | Select-String -Pattern $Text) {
$PathArray += $_.FullName
}
}
$Patharray > $results