Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Masowe tworzenie kont domeny Active Directory

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.

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 ;)

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

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

windows porady serwery

Komentarze

0 nowych
okokok   12 #1 04.03.2014 15:27

To tak wyglądają przygotowania do olimpiady?

Generator bardzo fajny, ale przydała by się możliwość niewypełniania wszystkich rekordów i generowania poleceń tylko na podstawie tych wypełnionych - http://screencloud.net/v/5Cwr.

FaUst   12 #2 04.03.2014 16:42

Ja używałem do tego excela który ładnie generował polecenia które wystarczyło przekopiować do BATa i uruchomić. Ale to ze względu na posiadanie gotowego pliku z danymi userów.

FaUst   12 #3 04.03.2014 16:44

A teraz używam POSHa i zaciągam dane z CSVa

StaryMordziaty   1 #4 04.03.2014 18:33

Fajne zakładki :D

WooQash   8 #5 05.03.2014 00:27

Fajne zakładki :) Jakaś prowokacja? :P

pjlyoko   4 #6 05.03.2014 08:33

@WooQash: Nie :) Ta "niecenzuralna" to skrypt dodający to słówko w losowe miejsca na stronie ;)
Ale na przyszłość raczej będę je wyłączać.

  #7 08.03.2014 20:08

CSV + PowerShell
new-QADUser -name 'nazwaUzyszkodnika' -ParentContainer 'OU=companyOU,DC=company,DC=com' -samAccountName 'user1' -UserPassword 'HasloUzyszkodnika'

:)