UcenecMigration

V osnovnih šolah kot uradnih ustanovah, v katerih izvajajo zakonsko določeno izobraževanje, je potrebno vsako leto pred začetkom novega šolskega leta v informacijski sistem šole vpisati nove učence, starim učencem dodeliti nov razred, nekatere (vsaj tiste, ki so uspešno zaključili študij na osnovni šoli) pa tudi odstraniti.

Na Osnovni šoli Črni Vrh smo imeli do letošnjega šolskega leta učence vpisane v podatkovni bazi elektronske redovalnice (t.i. iOSCV), ki sem jo v osnovni verziji skupaj z e-učilnicami za te namene spisal že pred cca. enim desetletjem v takrat popularnem PHPju, z letošnjim šolskim letom pa jo bo nadomestila nova elektronska redovalnica, spisana v SharePointu.

Zato je z letošnjim šolskim letom padla odločitev, da bodo zaradi centralizacije, večje varnosti in enostavnosti, učenci vpisani v AD-ju, kar bo uporabno tako v SharePointu, kot pri identifikaciji učenca ob prijavi v šolske računalnike (univerzalnega uporabniškega imena za vse učence ne bo več) tako za letos novonastali predmet Računalništvo in seveda tudi ostale predmete, kjer bodo učenci uporabljali računalnike ter seveda v ostalih informacijskih tehnologijah, ki se in se še bodo uporabljale na naši osnovni šoli.

Ker to pomeni, da bi si moral vzeti nekaj časa, da bi učence vseh devetih razredov vpisal v AD, sem zato raje izdelal programček, t.i. UcenecMigration, ki vse to delo opravi hitreje namesto mene.

Torej, ideja je bila taka, da izdelam program, ki prebere seznam učencev za vseh devet razredov, katerega dobim v nekem Excel dokumentu.
Seznam vsebuje ime in priimek vsakega učenca, program pa na podlagi teh dveh podatkov izdela uporabniško ime ter generira začetno geslo. Pri tem uporabljam knjižnico System.Security.Cryptography.
Generiranje uporabniškega imena mora biti zaščiteno pred njegovim podvajanjem med različnimi učenci. To pomeni, da bi morali ob vsakem na novo generiranem uporabniškem imenu pogledati v AD, če tako že obstaja, ker to pomeni toliko branj, kolikor je učencev in ker je branje podatkov iz ADja dokaj počasna operacija, sem zato raje bral AD samo enkrat in to na začetku, kjer poberem seznam uporabniških imen v Hash tabelo (zakaj ravno Hash tabelo si lahko preberete na povezavi) in kasneje ob generiranju novega uporabniškega imena raje iščem po njej, kot po ADju.
Program nato izdela organizacijske enote kot je videti na spodnji sliki.

Za vsak razred ustvari svojo organizacijsko enoto znotraj o.e. Ucenci, v vsaki izmed njih pa ustvari nove uporabniške račune. Taka razvrstitev mi omogoča lažje dodeljevanje GPO-jev.
Kot primer kode lahko kreiranje zgolj posamezne organizacijske enote ter skupine vidite tu spodaj.

Program se bo poganjal enkrat letno in sicer pred začetkom novega šolskega leta, kjer bo že vpisane učence premaknil en razred oz. organizacijsko enoto višje, v 1. razred dodal nove učence, tiste ki so bili prej v 9.razredu pa seveda odstranil. Pri tem upošteva tudi to,  da se lahko učenec prepiše na drugo šolo ali zaostane.

Za delo z ADjem sem uporabil knjižnico System.DirectoryServices.ActiveDirectory, za razne statuse pri posameznem DirectoryEntry-u pa referenco na ActiveDs.

Na koncu program zgolj še avtomatsko generira PDF datoteke z obrazcem in uporabniškimi podatki za vsakega učenca posebej.
Tako sem nalogo vnosa učencev v AD in izpisa uporabniških podatkov rešil v včerajšnem večeru, malo hitreje najbrž, kot bi to sicer trajalo “na roko”. 😉

Podobno stvar bom za naslednje leto izdelal tudi za učitelje, saj je seveda tudi tu potrebno pred začetkom šolskega leta ažurirati seznam učiteljev. Dodatno bo tu program vseboval tudi avtomatsko generiranje Exchange mail accounta, ostalo pa ostane v grobem enako.

Lep pozdrav!
Gašper Rupnik

{End.}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Powered by WordPress.com.

Up ↑

%d bloggers like this: