지난 90 일 동안 만들어진 새 Active Directory 계정을 찾으려면 어떻게합니까?


13

지난 90 일 동안 만들어진 새 Active Directory 계정을 찾으려면 어떻게합니까?

누구를해야하는지 아는 사람이 있습니까? 알아낼 수 없습니다.

미리 감사드립니다.

답변:


17

후손을 위해 dsquery는 이러한 종류의 검색을 위해 설계되었습니다. AD는 '만들기'필드를 유지하므로 선택한 도구로 쉽게 검색 할 수 있습니다.

dsquery * -filter "(작성시> = 20101022083730.0Z)"

예로서. 지금부터 90 일을 기준으로 프로그래밍 방식으로 시간 문자열을 만들 수 있습니다.


8
+1은 "(&(objectClass=user)(whenCreated>=20101022083730.0Z))"컴퓨터 및 기타 개체를 필터링하는 데 사용할 수 있습니다.
jscott

계정이 많은 활성 디렉토리의 경우 속도가 매우 느립니다. 데이터를 선형으로 통과시키는 것 같습니다.
Nicholas DiPiazza

8

지난 30 일 동안 생성 된 사용자를 끌어 오려면 다음을 시도하십시오.

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}

4
이 답변은 기술적으로 효과가 있지만 특히 수천 명의 사용자가있는 대규모 AD 환경에서는 그다지 효율적이지 않습니다. 기본적으로 모든 사용자에 대해 AD를 쿼리 한 다음 로컬 컴퓨터의 메모리에서 "where"기준에 맞는 것을 필터링합니다. 대신 실제로 Filter 인수 (또는 LDAPFilter)를 사용하여 결과를 시스템으로 다시 보내기 전에 결과를 필터링하고 Where 파이프를 피해야합니다.
Ryan Bolger

5

위에 표시된 Powershell 버전의 대안으로, 필터링하기 전에 메모리에 모든 사용자를로드하지 않기 때문에 훨씬 효율적입니다 (Get-ADUser cmdlet에서 직접 필터를 수행하고 Where-Object를 사용하지 않아야 함).

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}


0

다음은 생성 날짜별로 정렬 된 모든 AD 계정을 검색하는 다른 사이트의 예입니다.

http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html

Active Directory에서 각 계정의 생성 날짜를 얻을 수 있습니다. 모든 AD 개체에는 WhenCreated 및 WhenChanged 특성이 있습니다. LDIFDE 유틸리티를 사용하여 이러한 속성을 플랫 파일로 덤프하거나 CSVDE를 사용하여 쉼표로 구분 된 파일로 덤프 할 수 있습니다 (두 유틸리티 모두 Windows 2000과 함께 제공됨).

Company.com이라는 도메인에있는 Phoenix라는 OU의 사용자 개체에 대한 두 가지 특성을보기 위해 콘솔에 덤프하는 구문은 다음과 같습니다 (전체 항목을 한 줄로 입력해야 함).

ldifde -d ou = phoenix, dc = company, dc = com -l 작성시, 변경시 -p onelevel -r "(ObjectCategory = user)"-f con

덤프를 파일로 저장하려면 -f 스위치를 con에서 파일 이름으로 변경하십시오.

마지막 로그온 타임 스탬프는 YYYYMMDDHHMMSS 형식을 사용하며 시간은 세계 표준시로 표시됩니다. 20040115182937.0Z의 타임 스탬프는 2004 년 1 월 15 일 18:29:37 UCT에 해당합니다.

USRSTAT가 느리고 사용자가 얻는 보고서를 LDIFDE 덤프와 병합해야합니다. 따라서 각 도메인 컨트롤러에서 사용자 개체를 검색 한 다음 로컬 로그온 시간과 생성 시간을 나열하는 스크립트를 작성했습니다. 사용자 로그온 타임 스탬프는 긴 정수에서 변환해야합니다. 전환 코드는 Richard L. Mueller (www.rlmueller.net/Programs)에서 가져 왔습니다. Richard의 전체 스크립트는 레지스트리에서 현지 시간대를 사용하여 시간을 UCT에서 현지 시간으로 변환합니다. 맵시 있는


0

실제로 이러한 모든 답변은 거대한 프로덕션 AD 환경에서 작동하지 않습니다.

대답은 DirSync를 사용하는 것입니다 : https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window

여기에 자바 구현이 있습니다 : https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html

기본적으로 증분 토큰을 기반으로 변경 사항을 AD에 지속적으로 요청합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.