dsquery.exe i usuwanie nieaktywnych komputerów z domeny

Zarządzanie komputerami w domenie to bardzo ważne i często skomplikowane zadanie. Wyobraźmy sobie środowisko w którym liczba komputerów przekracza 1000 i jesteśmy rozliczani ze wskaźników instalacji poprawek bezpieczeństwa, czy aktualizacji programów antywirusowych. Jednym z podstawowych problemów będzie fakt, iż komputery widoczne w domenie mogą tak naprawdę nie istnieć (na przykład gdy zlikwidowano część stanowisk, bądź podmieniono komputery na nowsze), a automatyczne usuwanie ich z domeny albo w ogóle nie działa, albo działa ze zbyt dużym filtrem czasowym (np. kilka miesięcy). Narzędzia takie jak SCCM, czy WSUS będą zawsze widziały komputery-duchy, a przecież wolelibyśmy widzieć stan faktyczny. Cykliczne porządki w domenie są nieuniknione i nieocenioną pomoc w tej trudnej misji niosą nam narzędzia z pakietu Active Directory Domain Services Tools. Instrukcję dodania ich na serwerze Windows 2008 (podobnie będzie w Windows Vista/7/8) znajdziecie na stronie TECHNET.

Zacznijmy od odszukania nieaktywnych komputerów. Poniższy przykład zrzuci nam do pliku log.txt komputery, które były nieaktywne od 3 tygodni:

dsquery computer ou=komputery,ou=Warszawa,ou=Europa,dc=spece,dc=it -inactive 3 -limit 0 >>log.txt

„dsquery computer” to fraza, która wyszuka obiekty typu „computer” (oczywiście w domenie oznacza to nie tylko pecety, ale też serwery i laptopy ;)). „OU” to kontenery (katalogi) w drzewie Active Directory jakie przeszukamy. Bez tych wartości przeszukamy całe drzewo domeny. Jeśli jesteśmy częścią korporacji i zarządzamy tylko konkretnym OU, to najwięcej sensu ma właśnie sprecyzowanie gałęzi do przeszukania. Parametr ”–limit” to oczywiście ograniczenie liczby komputerów jakie znajdziemy (0 to brak limitu, a domyślny limit to 100). Wyrażenie „>> log.txt” służy do zrzucenia wyniku z CMD do pliku log.txt, o czym pisałem już wcześniej.

DSQUERY łączy się z innymi komendami dzięki pipe (czyli znakowi „|”) . Oto przykład, który każdy znaleziony komputer od razu usunie z domeny („-noprompt” oznacza usuwanie bez potwierdzenia):

dsquery computer ou=komputery,ou=Warszawa,ou=Europa,dc=spece,dc=it -inactive 3 -limit 0 | dsrm –noprompt

Jeśli wykorzystamy to polecenie w pliku .bat, to jak zawsze zachęcam do zabezpieczenia skryptu pauzą, tak jak pisałem w artykule o bezpiecznych Plikach Wsadowych.
Zamiast usuwać komputery z domeny, może zechcemy je tylko zablokować. Z pomocą przyjedzie nam polecenie dsmod, a całe polecenie blokujące konta komputerów nieaktywnych od 3 tygodni będzie wyglądało nastepująco:

dsquery computer ou=komputery,ou=Warszawa,ou=Europa,dc=spece,dc=it -inactive 3 -limit 0 | dsmod computer -disabled yes

Oto jak można znaleźć zablokowane komputery w konkretnym OU:

dsquery computer ou=komputery,ou=Warszawa,ou=Europa,dc=spece,dc=it –disabled

Nawiązując do powyższych przykładów, oczywiście skasowanie zablokowanych komputerów wykonamy tym poleceniem:

dsquery computer ou=komputery,ou=Warszawa,ou=Europa,dc=spece,dc=it –disabled | dsrm –noprompt

Blokowanie i kasowanie kont komputerów to tylko wierzchołek góry lodowej jaką jest zarządzanie obiektami w domenie. Z pewnością na ten temat pojawi się jeszcze wiele artykułów na naszym Blogu, zatem zachęcam do częstego odwiedzania nas.

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

4 komentarze

  1. Anonim napisał(a):

    A jak wydobyć z AD konta użytkowników, na które nie logowano się np przez 30 dni?

  2. Anonim napisał(a):

    dsquery user inactive

  3. Łukasz Skalikow napisał(a):

    dsquery user -inactive 30

  4. Mirek napisał(a):

    Mam taki komunikat:
    niepowodzenie:Nie skonfigurowano nadrzędnego odwołania usługi katalogowej. Z tego powodu usługa katalogowa nie może prwołań obiektom poza tym lasem.

    O co to chodzi?

Dodaj komentarz