获取内容管道到 Select 字符串并检索 ComputerName

Get-content Pipe to Select String and retrieve ComputerName

我正在尝试编写一个脚本,我可以查看远程服务器列表,搜索特定文件类型。然后,如果文件包含某个字符串,我想知道那是什么文件以及在什么计算机上。

我从基础开始,但是当我执行 Select-String 时,我无法检索文件,也无法找到计算机名称,它只是输出与我在脚本中相同的字符串。

我确信我遗漏了一些基本的东西,但是这里的任何建议将不胜感激。

$servers = ArrayofServers

    ForEach ($server in $Servers){ 
                invoke-command -computername $server {Get-ChildItem "D:\Folder\Location\Windows\" -Include *.txt -Recurse |

                Get-Content | 

                Select-String 'String to Select' | 

                Out-String 

    } -Credential $credential }

我希望能够 Select FileName、Pscomputername 和 Select-String。

我发现打破管道更容易。我已成功测试此代码:

$Servers = @("ArrayofServers")
foreach ($Server in $Servers)
{ 
    Invoke-Command -ComputerName $Server -ScriptBlock {
        $Results = $false
        $SearchResults = Get-ChildItem "D:\Folder\Location\Windows\" -Include *.txt -Recurse 
        foreach ($SearchResult in $SearchResults)
        {
            If ($SearchResult | Get-Content | Select-String 'String to Select')
            {
                $SearchResult.FullName
                $SearchResult | Get-Content
                $Results = $true
            }
        }
        If ($Results)
        {
            $env:COMPUTERNAME
        }
    } -Credential $Credential 
}