Raport użytkowników i ich skryptów logowania – dsquery.exe i dsget.exe


 

Niedawno pisałem o tym, jak zaimplementować skrypty logowania poprzez profil w Active Directory. Niedługo później rzucono mi wyzwanie: jak w firmie mającej mnóstwo oddziałów i wiele różnych skryptów logowania można zapanować nad tym, kto używa jakiego skryptu, czyli jak stworzyć prosty raport z listą użytkowników i ich skryptów logowania?

Jak zawsze metod rozwiązania danego problemu jest wiele. Ja postawię na dsquery.exe i dsget.exe. Program dsquery.exe, niedawno przyszedł nam z pomocą (niczym wąsaty Mario swojej księżniczce), gdy szukaliśmy nieaktywnych komputerów. (dsqet.exe to jego równie utalentowany brat Luigi :) )

Przypomnę, że dsquery.exe i dsget.exe są częścią 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.

 

Oto gotowe rozwiązanie:

dsquery user -name * | dsget user -display -loscr > C:\skrypty_logowania.txt

…a tu pare słów objaśnień. To polecenie wyświetli nam wszystkich użytkowników (wyświetli ich nazwy i ścieżki LDAP):

dsquery user -name *

Można wykonać to polecenie dla konkretnego użytkownika podając pełną nazwę konta lub fragment:

dsquery user -name *skalikow*

Można sprecyzować lokalizację (OU) kont do sprawdzenia:

dsquery user -name * ou=users,ou=Warszawa,ou=Europa,dc=spece,dc=it

To, co znajduje się po “pipe” to wspomniany dsget.exe, który ma za zadanie wejść we właściwości obiektu i wyświetlić informacje, których szukamy. W tym konkretnym przypadku wyświetlimy nazwę użytkownika (-display) i jego skrypt logowania (-loscr):

dsget user -display -loscr

“> C:\skrypty_logowania.txt”, to oczywiście przekierowanie wyniku do pliku, o czym już kiedyś pisałem :)

Raport będzie prosty i przejrzysty:

Piotr Berent       skrypt1.bat

Dariusz Góra      skrypt1.bat

Rafał kosewski      skrypt2.bat

Łukasz Skalikow      skrypt_Łukasza.bat

Ewa Wierciak      skrypt2.bat

 

Jeśli macie jakieś pytania lub ciekawe sugestie, piszcie :)

 

 


Podobne Tematy:

Tags:,
  • qaz82

    ja mam pytanie.
    mam liste userow w pliku txt
    mam drugi plik check.cmd w ktorym mam:
    @echo off
    for /f %%i in (users.txt) do (
    dsquery user -samid %%i | dsget user -samid -profile -hmdir >> wynik.txt
    )

    chcialbym aby w pliku wyjsciowym nie pojawialy mi się wpisy:
    samid hmdir profile
    oraz
    dsget succeeded
    najbardziej chcialbym zobaczyc wynik w formie:
    user1;profil;homedrive
    user2;profil;homedrive
    user3;profil;homedrive
    itd
    mecze się strasznie i nie wychodzi mi :(

  • Pawel

    Potrzebuje jeszcze w zapytaniu sprawdzic do jakich dyskow sieciowych maja dostep poszczegolni urzytkownicy