Quick and easy way to search for an item across site collections. I would suggest using one of the Keyword query tools to fine-tune your queries. Also note that SharePoint will limit your search results to 10,000 items, but you can page your results and cycle through them. In the example below, I’m searching across all the site collections off of the /sites/ managed path. With the returned dataset, I’m
$site = New-Object Microsoft.SharePoint.SPSite "https://example.site.com"
$keywordQuery = New-Object Microsoft.office.Server.Search.Query.KeywordQuery $site
$queryText = "SomeField:Taco AND Path:https://example.site.com/sites/*"
$keywordQuery.QueryText = $queryText
$keywordQuery.TrimDuplicates = $false
$searchExec = New-Object Microsoft.Office.Server.Search.Query.SearchExecutor
$searchResults = $searchExec.ExecuteQuery($keywordQuery)
$dTable = $searchResults.Table[000].Table.Rows
foreach($row in $searchResults.Table[000].Table.Rows)
{
$web = Get-SPWeb $row.SPWebUrl
$file = $web.GetFile($row.Path)
Write-Host $file.ServerRelativeUrl
}