Blog (2)
Komentarze (9)
Recenzje (0)
@pjlyokoMasowe tworzenie kont domeny Active Directory

Masowe tworzenie kont domeny Active Directory

04.03.2014 12:29, aktualizacja: 05.03.2014 08:34

Zadanie*: stworzyć aplikację, która pozwoli na utworzenie wielu kont użytkowników domeny Windows w sali 401 na podstawie danych wprowadzonych do formularza. Wygeneruj skrypt wiersza poleceń, który wykona określone zadanie.

Okay, zacznijmy pracę.

Na początek trzeba by się zorientować, jaka komenda pozwala na dodawanie użytkowników w domenie w dowolnym miejscu. Chwila błąkania się po Internetach i znajduję:

dsadd user

No dobra, teraz składnia.

Ouch...

dsadd user <UserDN> [-samid <SAMName>] [-upn <UPN>] [-fn <FirstName>] [-mi <Initial>] [-ln <LastName>] [-display <DisplayName>] [-empid <EmployeeID>] [-pwd {<Password> | *}] [-desc <Description>] [-memberof <Group> ...] [-office <Office>] [-tel <PhoneNumber>] [-email <Email>] [-hometel <HomePhoneNumber>] [-pager <PagerNumber>] [-mobile <CellPhoneNumber>] [-fax <FaxNumber>] [-iptel <IPPhoneNumber>] [-webpg <WebPage>] [-title <Title>] [-dept <Department>] [-company <Company>] [-mgr <Manager>] [-hmdir <HomeDirectory>] [-hmdrv <DriveLetter>:][-profile <ProfilePath>] [-loscr <ScriptPath>] [-mustchpwd {yes | no}] [-canchpwd {yes | no}] [-reversiblepwd {yes | no}] [-pwdneverexpires {yes | no}] [-acctexpires <NumberOfDays>] [-disabled {yes | no}] [{-s <Server> | -d <Domain>}] [-u <UserName>] [-p {<Password> | *}] [-q] [{-uc | -uco | -uci}]

http://technet.microsoft.com/pl-pl/library/cc731279(v=ws.10).aspx

To co, do roboty? A pewnie. Co mi szkodzi.

Przyznaję, że z początku składnia tego polecenia mnie przeraziła. Może nie ze względu na ilość opcji konfigurowalnych, ale ze względu na pierwszy parametr - <UserDN>. Jest to nazwa wyróżniająca (ang. distinguished name) danego użytkownika w drzewie Active Directory. Składnia wygląda mniej-więcej tak:

cn=Andrzej Nowak,ou=Uczniowie,dc=ADAXs401,dc=zs3ostrowiec,dc=local

Pięknością nie grzeszy, ale jest, zdaje się dość logiczna. Są dwie możliwości jej ustalenia. Pierwsza to zorientowanie się, że cn to Container Name, co w praktyce oznacza nazwę w drzewie, ou to Organization Unit, czyli nazwę jednostki organizacyjnej, a dc to Domain Controller, czyli kontroler domeny. Ważnym jest, że jeżeli mamy domenę np. thm.local, to ta część w tym zapisie będzie zapisaną tak: dc=thm,dc=local. Może tylko dla mnie było to ciężkie do zrozumienia, ale i w Novellu takie zapisy funkcjonowały, zdaje się…

Spróbujmy stworzyć użytkownika Przemysław Jedlikowski, logującego się przy użyciu nazwy PjLyoko i hasła zaq1@WSX w domenie test.local. Użyszkodnik musi zmienić swoje hasło przy pierwszym logowaniu, a co za tym idzie, może zmieniać swoje hasło. Jego konto jest aktywne. Niech zostanie dołączone do OU=testowe_konta,OU=s401.

dsadd user "CN=Przemysław Jedlikowski,OU=uczniowie,OU=401,DC=test,DC=local" -samid PjLyoko -upn PjLyoko@test.local -pwd zaq1@WSX -fn Przemysław -ln Jedlikowski -mustchpwd yes -disabled no -canchpwd yes

No. To teraz trzeba testować, czy działa.

Pierwsze, ręczne dodawanie konta do puli użytkowników.
Pierwsze, ręczne dodawanie konta do puli użytkowników.

Jakoś poszło. Teraz trzeba to tylko zautomatyzować…

Osoba korzystająca ze skryptu może wywołać generowanie kont na dwa sposoby: albo osobno dla każdego użytkownika, albo stworzyć konta uniwersalne. Trzeba przygotować obie ewentualności poprzez lekkie nagięcie interfejsu użytkownika. Albo stworzenie przełącznika ;)

Prosty interfejs generowania skryptu tworzenia kont.
Prosty interfejs generowania skryptu tworzenia kont.

No, czyli coś z tego wyszło. Teraz ewentualnie poprawić kilka błędów… i działa. ;)

Efekt pracy.
Efekt pracy.

Można też użyć samemu: http://jedlikowski.com/generowanieKont

Wybrane dla Ciebie
Komentarze (7)