지난 30일 동안 또는 두 날짜 사이에 Windows 서버(특히 2008 R2)에 로그온한 사용자 목록을 프로그래밍 방식으로 수집하는 방법이 있습니까? 2개의 Active Directory 서버가 있으며 모든 사용자는 동일한 도메인의 구성원입니다.
나의 최종 목표는 SPLA 이유로 각 서버에 대한 고유 사용자 목록을 자동으로 얻는 것입니다.
답변1
이는 프로그램을 통하지 않고 수동으로 수행되지만 이벤트 뷰어에서 로그인 이벤트만 표시하는 필터를 만들 수 있습니다. 폴더를 마우스 오른쪽 버튼으로 클릭 Custom Views
하고 Create Custom View
옵션을 선택하십시오. 안타깝게도 이 필터의 경우 XML을 편집해야 합니다. 필터의 XML은 다음과 같습니다.
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4624)]]
and
*[EventData[Data[@Name='LogonType'] and (Data='2' or Data='10' or Data='11')]]
</Select>
<Suppress Path="Security">
*[EventData[Data[@Name='TargetDomainName'] and (Data = 'Window Manager')]]
</Suppress>
</Query>
</QueryList>
로그온 유형 7(잠긴 세션 잠금 해제)도 포함하도록 이를 편집할 수 있습니다. 로그온 유형 코드에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
http://www.windowsecurity.com/articles-tutorials/misc_network_security/Logon-Types.html
이는 날짜 범위별로 필터링되지 않으며 로그인만 필터링됩니다. 하지만 해당 부분의 범위를 좁힌 후에는 이벤트 뷰어에서 날짜 범위를 수동으로 쉽게 찾아볼 수 있습니다.
불행하게도 방화벽이 꺼진 상태에서도 "다른 컴퓨터에 연결" 옵션을 사용하면 이 필터가 작동하지 않았습니다.
답변2
쉬운 방법은 없습니다. 보안 로그를 살펴보는 것이 가장 먼저 떠오르는 것입니다. 이벤트 ID 4624를 찾고 있습니다. 로그온 유형(대화형 로그온 수를 계산하려는 경우 2,10,11)에 주의하세요.
보안 로그 항목이 생성되는 속도와 로그 크기에 따라 30일 주기 전에 로그를 덮어쓸 수 있습니다.
중앙 위치에서 계산을 수행하는 로그인 스크립트를 시행하는 것이 좋습니다.