Jak znaleźć nowe konta Active Directory, które zostały utworzone w ciągu ostatnich 90 dni?

13

Jak znaleźć nowe konta Active Directory, które zostały utworzone w ciągu ostatnich 90 dni?

czy ktoś wie kto to zrobić? Nie mogę tego rozgryźć.

Z góry dziękuję.

Obrabować
źródło

Odpowiedzi:

17

Dla potomności dsquery jest przeznaczone do tego rodzaju wyszukiwania. AD utrzymuje pole „whenCreated”, które ułatwia wyszukiwanie za pomocą wybranego narzędzia.

dsquery *-filter "(whenCreated> = 20101022083730.0Z)"

Jako przykład. Możesz programowo utworzyć harmonogram na podstawie teraz - 90 dni.

sysadmin1138
źródło
8
+1 może chcieć użyć "(&(objectClass=user)(whenCreated>=20101022083730.0Z))"do odfiltrowania komputerów i innych obiektów.
jscott,
Jest to bardzo wolne w przypadku aktywnego katalogu z ogromną liczbą kont. Wydaje się, że wykonuje liniowe przekazywanie danych.
Nicholas DiPiazza
8

Spróbuj wykonać następujące czynności, aby wyciągnąć użytkowników utworzonych w ciągu ostatnich 30 dni.

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
użytkownik227969
źródło
4
Chociaż technicznie ta odpowiedź działa, nie jest bardzo wydajna, szczególnie w dużych środowiskach AD z tysiącami użytkowników. Zasadniczo odpytujesz AD dla wszystkich użytkowników, a następnie w pamięci komputera lokalnego odfiltrowuje tych, którzy spełniają kryteria „gdzie”. Zamiast tego powinieneś użyć argumentu Filtr (lub LDAPFilter), aby odfiltrować wyniki, zanim wrócą one do twojego komputera i całkowicie unikną potoku Where.
Ryan Bolger,
5

Alternatywa do pokazanej powyżej wersji PowerShell, która jest znacznie bardziej wydajna, ponieważ nie ładuje wszystkich użytkowników w pamięci przed ich filtrowaniem (powinieneś wykonać filtr bezpośrednio z cmdletu Get-ADUser i nie używać Where-Object):

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Matthieu
źródło
3

Używając PowerShell i Quest ActiveRoles Tools for AD (tutaj - http://www.quest.com/powershell/activeroles-server.aspx ),

Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)

da ci wyjście do konsoli lub gdziekolwiek przekierujesz wszystkich użytkowników utworzonych w ciągu ostatnich 90 dni.

Krzysztof
źródło
0

Oto przykład z innej witryny osoby pobierającej wszystkie konta AD posortowane według daty utworzenia:

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

Możesz utworzyć datę utworzenia każdego konta z Active Directory. Każdy obiekt AD ma atrybut WhenCreated i WhenChanged. Możesz zrzucić te atrybuty do płaskiego pliku za pomocą narzędzia LDIFDE lub możesz zrzucić je do pliku rozdzielanego przecinkami za pomocą CSVDE (oba narzędzia są dostarczane z systemem Windows 2000).

Oto składnia, aby zrzucić do konsoli dwa atrybuty obiektów użytkownika w jednostce organizacyjnej o nazwie Phoenix w domenie o nazwie Company.com (cały wpis należy wpisać w jednym wierszu):

ldifde -d ou = feniks, dc = firma, dc = com -l po utworzeniu, po zmianie -p onelevel -r "(ObjectCategory = użytkownik)" -f con

Jeśli chcesz zapisać zrzut do pliku, zmień przełącznik -f z con na nazwę pliku.

Znacznik czasu ostatniego logowania korzysta z tego formatu: RRRRMMDDGGMMSS, a godzina jest podana w Uniwersalnym czasie koordynowanym. Znacznik czasu 20040115182937.0Z odpowiada 15 stycznia 2004 18:29:37 UCT.

USRSTAT działa wolno, a otrzymany raport należy scalić ze zrzutem LDIFDE. Przygotowałem więc skrypt, który wyszukuje obiekty użytkownika na każdym kontrolerze domeny, a następnie podaje lokalny czas logowania i czas utworzenia. Znacznik czasu logowania użytkownika wymaga konwersji z długiej liczby całkowitej. Pożyczyłem kod konwersji pochodzi od Richarda L. Muellera (www.rlmueller.net/Programs). Pełny skrypt Richarda również pobiera lokalną strefę czasową z rejestru i konwertuje czas z UCT na czas lokalny. Fajne

PMGoldstein
źródło
0

W rzeczywistości wszystkie te odpowiedzi nie sprawdzą się w przypadku ogromnych produkcyjnych środowisk AD.

Odpowiedzią jest użycie DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window

Oto implementacja Java: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html

Zasadniczo ciągle pytasz AD o zmiany w oparciu o przyrostowy token.

Nicholas DiPiazza
źródło