Saturday, March 29th, 2008...3:41 pm

"Wyświetlacze" i dodatkowe kolumny w ADU&C

Jump to Comments

Pytanie lubią się powtarzać – ostatnio dwa razy trafiło się pytanie o to jak rozszerzyć domyślny widok użytkownika w konsoli ADU&C o dodatkowe kolumny widoczne przy listowaniu użytkowników. Dwa pytania to już powód do napisania na ten temat notki.

Jakieś dwa tygodnie temu zachaczył mnie o to Gabriel Zgirski … pierwsza odpowiedź jaką mu dałem to “ciężko będzie”. Cóż … jak widać człowiek nie wie wszystkiego, troche poszperałem i okazało się że może nie tak cieżko.

Potrzebne więc nam będą:

  • Visual Studio z kompilatorem C++
  • Trochę wiedzy na temat pisania w C++ pod kątem interfejsu użytkownika Windows
  • … w zasadzie tyle.

Nie wygląda trudno … prawdaż. No dobrze :), żartuje. Jest trochę prościej.

Active Directory w partycji konfiguracji zawiera kontener Cn=Display Specifiers, w którym znajdziemy umieszczone w dodatkowych kontenerach obiekty klasy displaySpecifier (czyli tytułowe wyświetlacze). Nazwa każdego z konterów odpowiada identyfikatorowi wersji językowej – czyli na przykład 409 to wersja angielska a 415 to wersja polska. Jest to o tyle ważne, że modyfikacje musimy wykonywać we wszystkich definicji dla wersji językowych narzędzi, z których korzystamy.

W dużym uproszczeniu displaySpecifier określa element interfejsu użytkownika wyświetlany w ramach narzędzi do zarządzania Active Directory. Modyfikując istniejące obiekty lub tworząc nowe możemy na przykład dodać nowy element menu kontekstowego lub jak w omawianym przykładzie wyświetlić dodatkową kolumnę.

Przechodząc do rzeczy. W ramach katalogu obiekty użytkowników najczęściej umieszczamy w ramach kontenerów OU.  Znajdźmy więc odpowiedni displaySpecifier odpowiadający za wyświetlanie OU w angielskiej wersji językowej konsoli:

CN=organizationalUnit-Display,CN=409,CN=DisplaySpecifiers,CN=Configuration,DC=w2k,DC=pl

Obiekt ten może zawierać atrybut extraColumns, dzięki któremu możemy rozszerzyć widok obiektów w naszej konsoli. Atrybut ten może zawierać wiele wartości znakowych w następującym formacie:

<ldapdisplayname>,<column header>,<default visibility>,<width>,<unused>

 

Nazwy mówią chyba same za siebie – należy tylko zaznaczyć, że w ostatnim polu należy zawsze wstawić 0 (zero).

I tak modyfikując atrybut extraColums dla definicji wyświetlacza OU następującą wartością:

distinguishedName,DN,1,150,0

uzyskujemy w widoku ADU&C dodatkową kolumnę DN:

I to w zasadzie by było na tyle w temacie.

Leave a Reply