Мне нужно получить отчет из приведенного ниже кода, теперь я запускаю его на каждом сервере отдельно.
Можно ли объединить все выходные данные с разных серверов и получить их в одном файле csv или напрямую отправить на мою электронную почту.
где определить имя сервера? как отображать имя сервера в каждом выводе? как объединить и получить в один выход?
Get-ADSyncToolsRunHistory | Where {$_.RunProfileName -match "Delta Import"} | Select-Object -Index 0, 1 | Format-Table StartDate, EndDate, ConnectorName, RunProfileName, Result
Get-ADSyncToolsRunHistory | Where {$_.RunProfileName -match "Delta Synchronization"} | Select-Object -Index 0, 1 | Format-Table StartDate, EndDate, ConnectorName, RunProfileName, Result
Get-ADSyncToolsRunStepHistory | Where {$_.RunProfileName -match "Full Import"} | Select-Object -Index 0, 1 | Format-Table StartDate, EndDate, ConnectorName, RunProfileName, StepResult
Get-ADSyncToolsRunStepHistory | Where {$_.RunProfileName -match "Full Synchronization"} | Select-Object -Index 0, 1 | Format-Table StartDate, EndDate, ConnectorName, RunProfileName, StepResult
вы можете сделать это локально, для начала: в файле server.txt - добавьте имя хоста вашего сервера построчно, например
server1
server2
$servers = Get-Content "c:\temp\servers.txt"
$Report = foreach ($server in $servers){
Invoke-Command -ComputerName $server -ScriptBlock{
Get-ADSyncToolsRunHistory | Where {$_.RunProfileName -match "Delta Import"} | Select-Object @{N='ServerName';E = {"$env:COMPUTERNAME"}},StartDate, EndDate, ConnectorName, RunProfileName, Result
}
}
$Report|Export-Csv "c:\temp\DeltaImport.csv" -NoTypeInformation
Прежде чем использовать Invoke-Command, я предлагаю вам пройти по этой ссылке один раз: https://4sysops.com/archives/use-powershell-invoke-command-to-run-scripts-on-remote-computers/