다음 코드를 참조하십시오. 사용자가 중지 할 때까지 코드가 계속 실행됩니다. 최종 목표는 스크립트를 실행하여 특정 날짜를 찾고 성공적으로 2 개의 날짜 사이에 결과를 찾거나 찾도록하는 것입니다.Powershell을 사용하여 원격 로그에서 출력 한 날짜에 대한 필터
(get-date)의 조합으로 -afterfore 플래그를 사용해 보았습니다. IE .dat .datetime .addday (+/- 1)하지만 스크립트를 사용하면 올바른 날짜와 정지를 발견하지만 스크립트를 다시 시작하거나 목록의 다음 머신으로 이동하기 전에 2/3 분이 걸립니다. 나는 또한 {$ _. TimeGenerated -lt "00/00/000"}
을 시도했습니다. 어떻게 할 수 있습니까? 나는 몇 가지 다른 일을 시도했지만 기쁨이 없습니다.
$ComputerName = 'CSV File'
$UserProperty = @{n="User";e={(New-Object System.Security.Principal.SecurityIdentifier $_.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}
$TypeProperty = @{n="Action";e={if($_.EventID -eq 7001) {"Logon"} else {"Logoff"}}}
$TimeProperty = @{n="Time";e={$_.TimeGenerated}}
$MachineNameProperty = @{n="MachineName";e={$_.MachineName}}
foreach ($computer in $ComputerName) {
Get-EventLog System -Source Microsoft-Windows-Winlogon -ComputerName $computer | select $UserProperty,$TypeProperty,$TimeProperty ,$MachineNameProperty
}
글쎄, 이건 정말 코드의 정확한 표현이 아닌 것 같습니다. 예를 들어 지금 foreach 루프가 한 번 실행되고 'CSV 파일'이라는 컴퓨터에서 이벤트 로그를 가져 오려고합니다. 나는 그것이 효과가 있다고 생각하지 않는다. 아마도이 링크는 도움이 될 것입니다 : https://stackoverflow.com/help/mcve – EBGreen
원격 이벤트 로그를받는 것이 일반적으로 조건이 이상적이지 않은 경우 (빠른 프로세서, 빠른 I/O, 작은 로그 파일) – EBGreen
'CSV 파일'은 실제 파일의 이름이 경로로 표시되는 대신 파일의 예입니다. For 루프는 CSV의 모든 컴퓨터에 대해 명령을 실행하므로 완벽하게 작동합니다. 내가 원하는 모든 일은 검색 할 날짜를 선언하는 것입니다. –