Active Directory: Wyświetlanie listy aktualnie zablokowanych użytkowników

logo_active_directory

Podczas pracy Administratora / ServiceDesk-owca bardzo często zgłaszają się do nas użytkownicy którzy zablokowali sobie konto w Active Directory poprzez kilkukrotne wpisanie błędnego hasła. Spora część instytucji które mają wdrożone AD oraz odpowiednie polityki ma ustawiony czas po jakim ta blokada jest automatycznie zdejmowana (np 30 min). Jednak Użytkownicy są z natury bardzo niecierpliwi i już by chcieli aby im odblokować konto. Możemy to zrobić znajdując konto takiego delikwenta przy użyciu przystawki Active Directorty Users and Computers i odznaczyć odpowiednie pole w preferencjach takiego obiektu. Fajnie byłoby mieć listę aktualnie zablokowanych kont użytkowników.

 

Jeżeli posiadamy Windows 2003 Server lub nowszy to możemy wykorzystać tzw „Saved Queries”  czyli wcześniej zdefiniowane zapytania do LDAP. Wykorzystamy tą funkcję do napisania prostego zapytania wyszukującego konta aktualnie zablokowanych użytkowników.

 

Trochę teorii

Każdy obiekt użytkownika znajdującego się w bazie LDAP posiada atrybut LockedTime. Obiekt ten mówi o czasie jaki pozostał do automatycznego odblokowania użytkownika. Jeżeli użytkownik nigdy nie był zablokowany to atrybut ten posiada pustą wartość. Jeżeli użytkownik jest zablokowany to jest tam wstawiona odpowiednia wartość czasowa w postaci tzw TimeStamp’u. Wartość ta wraz upływem czasu zmierza do zera. Odblokowując ręcznie użytkownika ustawiamy wartość na 0. Wystarczy więc wyszukać użytkowników, którzy posiadają wartość atrybutu LockedTime większa od 0.

 

Do dzieła

Tworzymy własną konsolke mmc. Wystarczy, że wpiszemy w pasek „Uruchom” polecenie mmc.

 

Okno konsoli MMC
Okno konsoli MMC

Do konsolki należy dodać przystawkę Active Directory Users and Computers. Aby to zrobić należy wybrać menu File a następnie Add/Remove Snap-in oraz wybrać odpowiednia pozycję:

 

Dodawanie przystawki w MMC
Dodawanie przystawki w MMC

 

Kiedy już mamy dodaną przystawkę w MMC rozwijamy drzewo główne,  klikamy prawym przyciskiem myszy na Saved Queries i Wybieramy New -> Query.

W nowo-otwartym oknie definiujemy nazwę dla naszego zapytania, a następnie klikamy na Define Query.

Okno New Query
Okno New Query

 

 

Z menu rozwijanego Find wybieramy: Custom Search, przechodzimy na zakładkę Advanced i wpisujemy poniższe zapytanie LDAP:

(&(&(&(ObjectCategory=user)(ObjectClass=user)(lockoutTime>=0)(!lockoutTime=0))))

Odwolujemy się do obiektu „user” oraz klasy „user”. Zapytanie jest tak skonstruowane, ponieważ LDAP nie obsługuje operatora mniejszości „>” a jedynie ‚mniejsze lub równe’. Musimy wiec dodatkowo dołożyć zaprzeczenie „równości” zera.  Więcej o operatorach zapytań LDAP można przeczytać na stronie technetu: http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx

Gotowe zapytanie powinno wygladać tak jak poniżej:

Zapytanie znajdujące zablokowanych użytkowników
Zapytanie znajdujące zablokowanych użytkowników

 

 

Po odświerzeniu zapytania powinniśmy zobaczyć listę aktualnie zablokowanych kont w Active Directory:

Wynik stworzonego zapytania
Wynik stworzonego zapytania

 

Na koniec warto zapisać stworzoną konsolkę MMC.

 

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *