0
powershell을 사용하여 원격으로 Windows 이벤트 로그를 수집하는 데 사용할 수있는 wmi보다 빠른 방법이 있습니까? 그렇지 않은 경우 여러 호스트의 로그를 수집하는 효율적인 멀티 스레딩 wmi-query를 어떻게 만들 수 있습니까?Windows 이벤트 로그를 원격으로 수집하는 방법은 무엇입니까?
powershell을 사용하여 원격으로 Windows 이벤트 로그를 수집하는 데 사용할 수있는 wmi보다 빠른 방법이 있습니까? 그렇지 않은 경우 여러 호스트의 로그를 수집하는 효율적인 멀티 스레딩 wmi-query를 어떻게 만들 수 있습니까?Windows 이벤트 로그를 원격으로 수집하는 방법은 무엇입니까?
봐
Get-EventLog
에 당신은 그것을 멀티 쓰레드 작업에서 그것을 실행할 수 있습니다 :
Start-Job -ArgumentList $HostName { return $(Get-EventLog -ComputerName "$($args[0])" -LogName Application -Source "Source Name") }
그런 다음 모든 데이터를 수집 :이처럼 보일 것이다
$Logs = $(Get-Job | Wait-Job | Receive-Job)
:
foreach($HostName in $Hosts) {
Start-Job -ArgumentList $HostName { return $(Get-EventLog -ComputerName "$($args[0])" -LogName Application -Source "Source Name") }
}
$Logs = $(Get-Job | Wait-Job | Receive-Job)
get-eventlog는 자격 증명 매개 변수를 제공하지 않으므로 "인증되지 않은 시도"오류가 발생합니다. 대체는 invoke-command를 사용하는 것이지만 http와 slow를 사용합니다. –
불행히도 invoke-command가 최선의 방법입니다. 병렬로 실행하면 오버 헤드가 명확하지 않습니다. 작업을 사용하여 WMI와 동일한 방법으로 멀티 스레드로 이동할 수도 있습니다. – Syddraf