Câu trả lời:
Đối với hậu thế, DSquery được thiết kế cho loại tìm kiếm này. AD không giữ trường 'khi được tạo', giúp bạn dễ dàng tìm kiếm bằng công cụ bạn chọn.
DSquery * -filter "(khi được tạo> = 20101022083730.0Z)"
Làm ví dụ Bạn có thể lập trình tạo dấu thời gian dựa trên bây giờ - 90 ngày.
Hãy thử các cách sau để kéo người dùng được tạo trong 30 ngày qua.
Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
Một thay thế cho phiên bản Powershell được hiển thị ở trên, hiệu quả hơn nhiều vì nó không tải tất cả người dùng vào bộ nhớ trước khi lọc chúng (bạn nên thực hiện bộ lọc trên lệnh ghép ngắn Get-ADUser và không sử dụng Where-Object):
$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Sử dụng PowerShell và Quest ActiveRoles Tools cho AD (tìm thấy tại đây - http://www.quest.com/powershell/activeroles-server.aspx ),
Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)
sẽ cung cấp cho bạn đầu ra cho bảng điều khiển hoặc bất cứ nơi nào bạn chuyển hướng của tất cả người dùng được tạo trong 90 ngày qua.
Đây là một ví dụ từ một trang web khác của một người nào đó đang truy xuất tất cả các tài khoản AD được sắp xếp theo ngày tạo:
http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html
Bạn có thể lấy ngày tạo cho mỗi tài khoản từ Active Directory. Mỗi đối tượng AD có thuộc tính KhiCreated và KhiChanged. Bạn có thể kết xuất các thuộc tính này vào một tệp phẳng bằng tiện ích LDIFDE hoặc bạn có thể kết xuất chúng vào một tệp được phân cách bằng dấu phẩy bằng CSVDE (cả hai tiện ích đều đi kèm với Windows 2000).
Đây là cú pháp để kết xuất hai thuộc tính cho các đối tượng người dùng trong OU có tên là Phoenix trong miền có tên Company.com để điều khiển để xem (toàn bộ mục nhập nên được nhập dưới dạng một dòng):
ldifde -d ou = phoenix, dc = company, dc = com -l đã được tạo ra, khi được trao đổi -p onelevel -r "(ObjectC Category = user)" -f con
Nếu bạn muốn lưu kết xuất vào một tệp, hãy thay đổi chuyển -f từ con sang tên tệp.
Dấu thời gian đăng nhập cuối cùng sử dụng định dạng này: YYYYMMDDHHMMSS, với giờ được hiển thị trong Giờ phối hợp chung. Một dấu thời gian 20040115182937.0Z tương ứng với ngày 15 tháng 1 năm 2004 18:29:37 UCT.
USRSTAT chậm và báo cáo bạn nhận được phải được hợp nhất với kết xuất LDIFDE. Vì vậy, tôi kết hợp một tập lệnh tìm kiếm các đối tượng người dùng ở mỗi bộ điều khiển miền, sau đó liệt kê thời gian đăng nhập cục bộ và thời gian tạo. Dấu thời gian đăng nhập người dùng yêu cầu chuyển đổi từ một số nguyên dài. Tôi đã mượn mã chuyển đổi đến từ Richard L. Mueller (www.rlmueller.net/Programs). Kịch bản đầy đủ của Richard cũng lấy múi giờ địa phương từ Cơ quan đăng ký và chuyển đổi thời gian từ UCT sang giờ địa phương. Tiện lợi
Trên thực tế tất cả những câu trả lời này sẽ không hoạt động cho một môi trường AD sản xuất lớn.
Câu trả lời là sử dụng DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribution-changes-in-active-directory-on-window
Đây là một triển khai java của việc này: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html
Về cơ bản, bạn liên tục yêu cầu AD thay đổi dựa trên mã thông báo gia tăng.
Bạn có thể làm điều này khá dễ dàng với dsquery
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
để lọc ra các máy tính và các đối tượng khác.