Active Directory 사용자의 마지막 로그온 시간 찾는 방법 (ADUC 사용)

Active Directory 사용자의 마지막 로그온 시간 찾는 방법 (ADUC 사용). Active Directory는 많은 Windows 기반 네트워크의 중앙 구성 요소로서, 시스템 관리자가 관리하는 사용자, 그룹, 컴퓨터의 데이터베이스로 작동합니다. 시스템 관리자에게 중요한 작업 중 하나는 Active Directory에서 비활성 사용자 계정을 식별하고, 이를 제거하여 보안을 향상시키고 디렉토리의 혼란을 줄이는 것입니다. 이를 달성하기 위해 관리자는 Active Directory에서 사용자의 마지막 로그온 시간을 찾아야 합니다.이를 달성하기 위한 여러 가지 방법이 존재하며, 이에는 Active Directory 사용자 및 컴퓨터 콘솔, LDAP 쿼리, PowerShell 명령이 포함됩니다. 이 주제에서는 이러한 방법을 더 자세히 살펴보고 시스템 관리자가 Active Directory에서 사용자의 마지막 로그온 시간을 어떻게 쉽게 찾는지 보여줍니다.

여러 방법으로 이를 달성할 수 있으며, 이에는 Active Directory Users and Computers 콘솔, LDAP 쿼리 및 PowerShell 명령이 포함됩니다. 이 항목에서는 이러한 방법을 자세히 살펴보고 시스템 관리자가 어떻게 쉽게 Active Directory에서 사용자의 마지막 로그온 시간을 찾을 수 있는지 보여줍니다.

기사 “How to Find Active Directory Users Last Logon Time (Using ADUC)”로 계속 진행할까요?

Active Directory Users Last Logon Time 찾기 (ADUC 사용)

도메인 사용자가 마지막으로 로그인한 시간을 확인하기 위해 Active Directory Users and Computers (ADUC) 그래픽 콘솔을 사용합니다. 방법은 다음과 같습니다:

  1. dsa.msc 콘솔을 실행합니다.
  2. 상단 메뉴에서 보기 > 고급 기능을 선택하여 이 옵션을 활성화합니다.

3. AD 트리에서 사용자를 찾아 속성을 확인합니다.
4. 속성 편집기 탭을 클릭합니다.
5. 사용자의 가장 최근 도메인 로그인 시간을 표시하는 마지막 로그인 속성을 속성 목록에서 찾습니다.

참고사항: lastLogon 및 lastLogonTimestamp 스크린샷 위의 특성은 비슷합니다. 그렇다면 그들이 서로 다른 점은 무엇인가요?

로그온 타임스탬프 속성

  • 사용자가 도메인에 로그인할 때, lastLogon 속성이 변경됩니다. 그러나 이는 다른 도메인 컨트롤러에 비복제 사용자의 인증을 제공한 도메인 컨트롤러에서만 변경됩니다. 따라서 여러 도메인 컨트롤러가 다양한 Active Directory 사이트 및 서브넷에 분산되어 있는 경우 각 도메인 컨트롤러에서 이 속성을 확인해야 합니다. 그런 다음 얻은 정보를 비교해야 합니다. 여러 DC에서 사용자의 이 속성 값은 다를 수 있거나 심지어 0일 수 있습니다(이 사용자가 DC에서 인증되지 않은 사용자인 경우);
  • 사용자가 도메인 컨트롤러에 로그인할 때, lastLogonTimeStamp 속성도 수정되고 다른 DCs에 복제합니다. 그러나 이 속성을 복제하는 데 시간이 걸립니다(현재 값이 이전 값보다 14일 이상 오래된 경우에만 복제합니다). 따라서 특정 DC의 이 속성에 있는 정보는 더 관련성이 있을 수 있습니다.

Windows Server 2008 AD 스키마 버전(AD 스키마 objectVersion = 44)부터 로그인과 관련된 여러 대체 속성을 사용합니다. 이들에는 다음이 포함됩니다:

  • msDS-LastFailedInteractiveLogonTime: 최근 실패한 로그인 시도의 시간을 표시합니다.
  • msDS-LastSuccessfulInteractiveLogonTime: 최근 성공한 로그인 시도의 시간을 표시합니다. Active Directory 스키마를 업데이트해야 하는지 여부를 판단하려면 AD 스키마 버전을 확인하는 것이 중요합니다.

이러한 속성들은 사용자의 상호 작용 로그인 시도를 추적하는 데 사용되며, 종종 AD 도메인 컨트롤러 간에 중복됩니다. 그러나 이들은 사용자 기본 설정에 대한 정보를 자동으로 수집하지 않습니다.

Active Directory 및 Office 365 보고 및 감사 도구를 사용해보세요

무료로 사용해보세요 무료. 수백 개의 보고서 템플릿이 제공됩니다. AD, Azure AD 및 Office 355에 대한 자신만의 보고서를 쉽게 맞춤 설정할 수 있습니다.




그룹 정책을 사용하여 로그온 속성 활성화

이러한 기능을 사용할 수 있게 하려면:

  1. 그룹 정책 개체(GPO) 설정 “도메인 컨트롤러에 대한 이전 로그온 정보를 클라이언트 컴퓨터에 제공”을 활성화하세요. 위치는 컴퓨터 구성 > 관리 템플릿 > 시스템 > KDC.
  2. 이 매개변수로 GPO를 생성하세요.
  3. GPO를 Domain Controllers 컨테이너에 할당하세요.

LDAP 쿼리를 사용하여 Active Directory 그래픽 콘솔에서 일정 기간 동안 도메인로그인하지 않은 사용자 목록을 생성하려면 다음 단계를 따르세요:

  1. 원하는 날짜를 ToFileTime 형식으로 변환하세요. 예를 들어, 90일 이상 로그인하지 않은 사용자를 찾으려면 PowerShell 명령을 사용하여 날짜 값을 가져옵니다:
(Get-Date).AddDays(-90).ToFileTime()

이 코드 스니펫은 지정된 날짜를 기준으로 마이크로초 시간 값(132988354159396418과 같음)을 제공합니다.

2. LDAP 쿼리에 FileTimeDate 값을 삽입하세요:

console.log( 'Code is Poetry' );

3. 관리 도구에서 AD 사용자 및 컴퓨터 콘솔을 열고, 저장된 쿼리 노드를 마우스 오른쪽 버튼으로 클릭한 후 새로 만들기를 클릭하고, 다음으로 쿼리를 선택합니다.

4. 쿼리에 이름을 지정하고 쿼리 정의 버튼을 클릭합니다.
5.
드롭다운 목록에서 사용자 정의 검색을 선택한 후 고급 탭으로 전환합니다.
6. LDAP 쿼리를 복사하여 입력 필드에 붙여넣습니다.

7. 확인을 클릭하여 쿼리를 저장한 후 다시 확인을 클릭하여 확인합니다.
8. 저장된 쿼리에서 쿼리를 선택하고 F5 키를 눌러 객체 목록을 새로 고칩니다. ADUC 콘솔에는 90일 이상 전에 마지막으로 로그인한 사용자들의 평면 목록이 표시됩니다.

9. 비활성 도메인 사용자 계정을 AD 콘솔에서 직접 제거하거나 비활성화합니다.

CMD를 사용하여 마지막 로그온 시간 찾기

다음으로, 활성 디렉토리 사용자의 마지막 로그온 시간을 찾는 방법(ADUC 사용)에 대한 문서와 함께 CMS를 사용하여 마지막 로그온 시간을 찾는 방법을 배워보겠습니다. 명령 행에서 net 또는 dsquery 도구를 사용하여 사용자가 도메인에 마지막으로 로그인한 시간을 확인할 수 있습니다. 예를 들어, 다음 명령을 명령 프롬프트 터미널에서 실행하면(도메인 관리자 권한이 필요하지 않음) AD 사용자 정보를 얻을 수 있습니다):

net user administrator /domain | findstr "Last"

만약 로컬 사용자의 마지막 로그인 시간을 얻고 싶다면, /domain 매개변수를 제거해야 합니다:

net user User | findstr "Last"

dsquery를 사용하여 마지막 로그온 시간을 얻을 수도 있습니다. 예를 들면:

dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=admin))" -attr distinguishedName lastLogon lastLogonTimestamp -limit 0

주요 문제는 lastLogonTimestamp 및 lastLogon 속성이 AD에서 타임스탬프 형식이며 일반 시간 형식으로 변환해야 한다는 것입니다.

예를 들어 10주 동안 비활성 사용자를 찾기 위해 다음 명령을 사용합니다:

dsquery user domainroot -inactive 10

PowerShell을 사용하여 마지막 로그온 시간 찾기

우리는 또한 PowerShell을 사용하여 사용자의 최종 도메인 로그온 시간을 얻습니다. 이를 위해 PowerShell Active Directory 모듈과 PowerShell 명령을 사용해야 합니다. 먼저 PowerShell을 열고 Import-Module cmdlet을 실행하여 활성 디렉토리 모듈을 가져옵니다.

Import-Module ActiveDirectory
Get-ADUser -Identity username -Properties LastLogon | Select-Object -Property Name, LastLogon

특정 일 수(예: 90일) 동안 로그인하지 않은 계정을 찾으려면 PowerShell 명령을 사용하여 사용자 계정을 LastLogon 타임스탬프 속성을 기반으로 필터링합니다. 다음은 예제 명령입니다:

Get-ADUser -Filter {Name -eq "username"} -Properties * |
Select-Object Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}

이 명령은 90일 이상 활동하지 않은 계정을 검색하고 사용자 계정만 선택합니다. 그런 다음 해당 사용자 계정의 이름과 LastLogonTimestamp 속성 값을 표시하여 사용자가 도메인에 로그인한 마지막 시간을 나타냅니다.TimeSpan 매개 변수를 조정하여 다른 일 수에 대해 비활성화된 계정을 검색합니다. 예를 들어, 60일 동안 비활성화된 계정을 검색하려면 TimeSpan60.00:00:00.로 설정합니다.사용자가 시스템에 로그인하거나 로그오프한 후 AD가 LastLogonTimestamp 속성을 업데이트하므로 값은 부분적으로 정확할 수 있습니다. 또한, 이 속성은 기본적으로 도메인 컨트롤러 사이에서 9-14일마다 복제되므로 일부 사용자 계정에 대해서만 최신 정보를 얻을 수 있습니다.

지정된 일 수 동안 비활성 사용자 찾기

90일과 같은 특정 일 수 동안 로그인하지 않은 계정을 찾으려면 LastLogonTimestamp 속성을 기반으로 사용자 계정을 필터링하는 PowerShell 명령을 사용합니다. 다음은 예제 명령입니다.

Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | where {$_.ObjectClass -eq 'user'} | Select-Object Name, LastLogonTimestamp

이 명령은 90일 이상 비활성 상태인 계정을 검색하고 사용자 계정만 선택합니다. 그런 다음 해당 사용자 계정의 이름과 도메인에 마지막으로 로그인한 시간을 나타내는 LastLogonTimestamp 속성 값을 표시합니다.

TimeSpan 매개변수를 조정하여 비활성 상태인 계정을 다른 일 수로 검색합니다. 예를 들어 60일 동안 비활성 상태인 계정을 검색하려면 TimeSpan60.00:00:00으로 설정합니다.

참고로 AD는 사용자가 시스템에 로그인하거나 로그아웃할 때 LastLogonTimestamp 속성을 업데이트하므로 값은 부분적으로 정확할 수 있습니다. 또한 이 속성은 기본적으로 도메인 컨트롤러 간에만 9-14일마다 복제되므로 일부 사용자 계정에 대해서만 최신 정보를 얻을 수 있습니다.

CSV 파일로 내보내기

비활성 사용자 계정 목록을 CSV 파일로 내보내려면 이전에 제공된 PowerShell 명령을 Export-CSV cmdlet을 포함하도록 수정합니다. 다음은 예제 명령입니다.

Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
where {$_.ObjectClass -eq 'user'} |
Select-Object Name, LastLogonTimestamp |
Export-CSV C:\InactiveUsers.csv -NoTypeInformation

이 명령은 90일 이상 비활성화된 계정을 검색하고 사용자 계정인 것만 선택합니다. 그런 다음 해당 사용자 계정의 NameLastLogonTimestamp 속성을 확인하고 CSV 파일에 내보냅니다. “C:\InactiveUsers.csv”에 있습니다.

-NoTypeInformation” 매개 변수는 각 객체의 .NET 유형 정보를 포함하지 않아 파일을 더 읽기 쉽게 만듭니다. 이 명령을 실행한 후 Excel이나 기타 스프레드시트 애플리케이션으로 CSV 파일을 열어 비활성 사용자 계정과 최근 로그온 시간 목록을 확인할 수 있습니다.

Active Directory 사용자의 마지막 로그온 시간 찾기 (ADUC 사용 방법) 문서를 읽어 주셔서 감사합니다. 이제 마무리하겠습니다.

Active Directory 사용자의 마지막 로그온 시간 찾기 (ADUC 사용 방법) 결론

결론적으로, 사용자의 마지막 로그인 시간을 Active Directory에서 찾는 것은 시스템 관리자에게 필수적인 작업입니다. 이를 통해 비활성 사용자 계정을 식별하여 보안을 향상시키고 디렉터리에서 혼잡을 줄일 수 있습니다. 우리는 Active Directory 사용자 및 컴퓨터 콘솔, LDAP 쿼리 및 PowerShell 명령을 포함한 다양한 방법을 사용하여 이를 실현합니다.

적절한 도구와 기술을 사용하면 시스템 관리자는 빠르고 쉽게 Active Directory에서 사용자의 마지막 로그인 시간을 찾아 적절한 조치를 취하여 디렉터리를 효과적으로 관리할 수 있습니다.

Source:
https://infrasos.com/how-to-find-active-directory-users-last-logon-time-using-aduc/