Antworten:
Für die Nachwelt ist dsquery auf diese Art der Suche ausgelegt. AD behält ein "whenCreated" -Feld bei, das die Suche mit dem Tool Ihrer Wahl vereinfacht.
dsquery * -Filter (whenCreated> = 20101022083730.0Z)
Als Beispiel. Sie können den Zeitstempel programmgesteuert auf der Basis von 90 Tagen erstellen.
Versuchen Sie Folgendes, um Benutzer abzurufen, die in den letzten 30 Tagen erstellt wurden.
Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
Eine Alternative zur oben gezeigten Powershell-Version, die wesentlich effizienter ist, da nicht alle Benutzer vor dem Filtern in den Arbeitsspeicher geladen werden (Sie sollten den Filter im Cmdlet Get-ADUser direkt ausführen und kein Where-Object verwenden):
$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Verwenden von PowerShell und den Quest ActiveRoles-Tools für AD (hier zu finden - http://www.quest.com/powershell/activeroles-server.aspx ),
Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)
Gibt die Ausgabe an die Konsole oder an eine beliebige Stelle weiter, an der Sie alle in den letzten 90 Tagen erstellten Benutzer umleiten.
Hier ist ein Beispiel von einer anderen Site, auf der jemand alle AD-Konten nach Erstellungsdatum sortiert abruft:
http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html
Sie können das Erstellungsdatum für jedes Konto in Active Directory abrufen. Jedes AD-Objekt verfügt über ein WhenCreated- und ein WhenChanged-Attribut. Sie können diese Attribute mit dem LDIFDE-Dienstprogramm in eine Einfachdatei oder mit CSVDE in eine durch Kommas getrennte Datei sichern (beide Dienstprogramme werden mit Windows 2000 geliefert).
Hier ist die Syntax, um die beiden Attribute für die Benutzerobjekte in einer Organisationseinheit mit dem Namen Phoenix in einer Domäne mit dem Namen Company.com zur Anzeige an die Konsole zu senden (der gesamte Eintrag sollte als einzelne Zeile eingegeben werden):
ldifde -d ou = phoenix, dc = company, dc = com -l bei Erstellung, bei Änderung -p onelevel -r "(ObjectCategory = user)" -f con
Wenn Sie den Speicherauszug in einer Datei speichern möchten, ändern Sie die Option -f von con in einen Dateinamen.
Der Zeitstempel der letzten Anmeldung verwendet dieses Format: JJJJMMTTHHMMSS, wobei die Stunde in der koordinierten Weltzeit angezeigt wird. Ein Zeitstempel von 20040115182937.0Z entspricht dem Datum vom 15. Januar 2004, 18:29:37 UCT.
USRSTAT ist langsam und der Bericht, den Sie erhalten, muss mit dem LDIFDE-Dump zusammengeführt werden. Also habe ich ein Skript zusammengestellt, das auf jedem Domänencontroller nach Benutzerobjekten sucht und dann die lokale Anmeldezeit und die Erstellungszeit auflistet. Der Benutzeranmeldezeitstempel erfordert die Konvertierung von einer langen Ganzzahl. Ich habe mir den Umrechnungscode von Richard L. Mueller (www.rlmueller.net/Programs) ausgeliehen. Richards vollständiges Skript übernimmt auch die lokale Zeitzone aus der Registrierung und konvertiert die Zeit von UCT in lokale Zeit. Raffiniert
Tatsächlich funktionieren all diese Antworten in großen Produktions-AD-Umgebungen nicht.
Die Antwort ist, DirSync zu verwenden: https://support.microsoft.com/de-de/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window
Hier ist eine Java-Implementierung davon: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html
Grundsätzlich fragen Sie AD ständig nach Änderungen, die auf einem inkrementellen Token basieren.
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
werden, um Computer und andere Objekte herauszufiltern.