$prod='rej-p' $servers = @( "$prod-app001", "$prod-bcm001", "$prod-bcm002", "$prod-app002", "$prod-app003", "$prod-app004", "$prod-web001", "$prod-web002", "$prod-web003", "$prod-web004", "$prod-web005", "$prod-web006", "$prod-web007", "$prod-web008") $pattern = Read-Host -Prompt "Enter the pattern to search for" $startDate = Read-Host -Prompt "Enter the start date (yyyy-MM-dd) [default: $(Get-Date -Format 'yyyy-MM-dd')]:" if (!$startDate) { $startDate = (Get-Date -Format "yyyy-MM-dd") } $endDate = Read-Host -Prompt "Enter the end date (yyyy-MM-dd) [default: $(Get-Date -Format 'yyyy-MM-dd')]:" if (!$endDate) { $endDate = (Get-Date -Format "yyyy-MM-dd") } $startTime = Read-Host -Prompt "Enter the start time (HH:mm:ss) [default: 08:00:00]:" if (!$startTime) { $startTime = "08:00:00" } $endTime = Read-Host -Prompt "Enter the end time (HH:mm:ss) [default: 16:00:00]:" if (!$endTime) { $endTime = "16:00:00" } $results = @() foreach ($server in $servers) { $path = "\\$server.rejprod.local\d-drive\IFSBOSystem\log\" Get-ChildItem -Path $path -Filter *.log | ForEach-Object { $logDate = $_.LastWriteTime.ToString("yyyy-MM-dd") $logTime = $_.LastWriteTime.ToString("HH:mm:ss") if (($logDate -ge $startDate) -and ($logDate -le $endDate) -and ($logTime -ge $startTime) -and ($logTime -le $endTime)) { $matches = Select-String -Path $_.FullName -Pattern $pattern foreach ($match in $matches) { $results += [PSCustomObject]@{ FileName = $_.Name Line = $match.Line Server = $server } } } } } $results | Select-Object FileName, Line, Server | Export-Csv -Path "$PWD\result.csv" -NoTypeInformation If ($results -ne $null) { start notepad++ .\result.csv } Else { Write-Host "!!NOTHING FOUND!!"; } #Write-Host $results