0

アイデアは、Select-String と Invoke-Command を使用して複数のサーバーでパターンを検索することです。

$results をローカル サーバーに正しく戻して、ファイルやコンソールに出力することができません (これはそれほど重要ではありません)。

必要なのは、検索結果 (ファイル名、行、一致) を確認できることです。

Set Execution-Policy  RemoteSigned
$servidores = Get-Content "C:\ServerList.txt"
(Get-Date).ToString()

Write-Output "----------------Running script------------------"
Write-Output "---------------Servers in scope :---------------"
Write-Output $servidores
Write-Output "-----------------Starting Loop-----------------"

$ToExecute = {
Select-String -SimpleMatch "password" -Path C:\*.* -Exclude C:\Users\Public\resultados.txt
}


 foreach ($server in $servidores){
$result = Invoke-Command -ComputerName $server -ScriptBlock $ToExecute 
Write-Output "----------Executing Search on Server:-----------"
(Get-Date).ToString();$server; 
Write-Output "------------------------------------------------"
Write-Output $result
Out-File $result C:\Users\Public\resultados.txt 
}
4

2 に答える 2

0
Set Execution-Policy  RemoteSigned
$servidores = Get-Content "C:\ServerList.txt"
Write-Output ("----------------Running script-----"+(Get-Date).ToString()+"--  -----------")
Write-Output "--------------------------Servers in scope----------------------------"
Write-Output $servidores
foreach ($server in $servidores){
Write-Output ("---Executing Search on Server:---"+$server+"----at:"+(Get-    Date).ToString()+"-------------")
$result= Invoke-Command -ComputerName $server -ScriptBlock {Select-String -    Pattern "password" -Path C:\*.txt -AllMatches}
if ($result -ne $null){
Write-Output $result.ToString() 
}
}Read-Host -Prompt "Press Enter to exit"
于 2016-09-15T14:38:30.057 に答える