Windows 7 워크 스테이션에서 로컬 로그온/로그 오프 목록을 추출해야합니다. evtx 형식으로 보안 이벤트 로그의 저장된 복사본이 있는데 몇 가지 문제가 있습니다.powershell을 사용하여 로그온/로그 오프 이벤트 추출
다음 PowerShell은 ID 4624
또는 4634
모든 이벤트를 추출합니다
Get-WinEvent -Path 'C:\path\to\securitylog.evtx' | where {$_.Id -eq 4624 -or $_.Id -eq 4634}
내가 만 logon type = 2 (local logon)
에 대한 필터링 할. 이 배관 :
| where {$_.properties[8].value -eq 2}
은 그러나 모든 id=4634
(로그 오프) 이벤트를 제거하는 것 같다.
이벤트 id = 4624
이벤트의 경우에도 사용자 ID가 없습니다. 예 배관에 :
| select-object -property Timecreated,TaskDisplayName,MachineName,userid
하거나 배관 Export-Csv
하려면 userid
가 비어 있습니다.
두 가지 문제는 다음과 같습니다
- 곳
{$_.properties[8].value -eq 2}
에 파이프 왜 ID 4634 방울과 이벤트가 있습니까? userid
이 비어있는 이유는 무엇입니까?userid
을 얻으려면 어떻게해야합니까? 8 매직 넘버 아니라고 는
감사합니다 -이 명령은 이벤트를 추출하기 위해 작동합니다 : 그것은 쉼표로 구분 된 값을 출력 가져-WinEvent를 -Path 'C : \ 경로 \는 securitylog.evtx \하는'| 여기서 {($ _. Id - eq 4624 - $ _. properties [8] .value -eq 2) - 또는 ($ _. Id - eq 4634 - 및 $ _.properties [4] .value -eq 2) } XML 요소 이름으로 속성 요소를 참조 할 수 있습니까? 또한 실제로 속성 배열의 값을 어떻게 인쇄합니까? Select-object를 사용하면 속성을 인쇄 할 수 있습니다 (예 : select-object -property TTimecreated, TaskDisplayName, MachineName)하지만 속성 배열에서 특정 요소를 인쇄하는 방법을 파악할 수 없습니다. – cuvy