Login script je prostředek systému NetWare, který umožňuje nastavit požadované vlastnosti uživatelova síťového prostředí v okamžiku, kdy vstupuje do sítě. Jeho prostřednictvím lze totiž v rámci přihlašování uživatele do sítě automaticky provést předem zadané příkazy. Použitím login scriptu lze snadno připravit uživatelovo síťové prostředí tak, aby vyhovovalo jeho potřebám a přáním. Obvykle se tímto způsobem realizuje potřebné mapování diskových symbolů, přesměrování tiskových portů, nastavení systémových proměnných, spouštějí se používané uživatelské aplikace, přechází se do nabídkového systému apod. Login script je prováděn v rámci přihlašovacího procesu utilitou NetWare Login nebo příkazem LOGIN. Uplatňuje se také při přihlašování přes souborovou službu NetStorage.
Poté, co uživatel v průběhu svého přihlašování do sítě zadá příslušné jméno a případně heslo, je autentizován. Následně se pro něj provádějí login scripty, které má definovány. V systému NetWare 6 jsou k dispozici následující 4 typy login scriptů:
Login script kontejnerového objektu (Container login script) se definuje pro kontejnerové objekty, konkrétně pro objekty typu Organization a Organizadonal Unit. Je-li pro daný kontejnerový objekt definován, provádí se pro všechny uživatele, kteří jsou v něm umístěni, a to jako první ze všech login scriptů, jež jsou pro přihlašujícího se uživatele realizovány. Do tohoto typu login scriptu je účelné ukládat takové příkazy, které mají být prováděny pro všechny uživatele definované v daném kontejnerovém objektu. Pro každého přihlašujícího se uživatele se provádí vždy jen jeden login script kontejnerového objektu, a sice toho, ve kterém je uživatel umístěn. Login scripty nadřazených kontejnerových objektů se tedy neuplatňují.
Profilový login script (profile login script) představuje v podstatě mezistupeň mezi login scriptem kontejnerového objektu a dále uvedeným uživatelským login scriptem. Definuje se pro objekty typu Profile a je prováděn jen pro uživatele, kteří jsou s těmito objekty spojeni. Slouží tedy k provádění požadovaných příkazů login scriptů jen pro vybrané skupiny uživatelů. Tito uživatelé přitom mohou být umístěni v různých místech stromu eDirectory (tzn. i ve více kontejnerových objektech). Každý uživatel však může mít připojen jen jeden objekt typu Profile. Má-li přihlašující se uživatel připojen objekt typu Profile, to znamená, že má definován profilový login script, provádí se mu bezprostředně po login scriptu kontejnerového objektu.
Uživatelský login script (user login script) se vytváří individuálně pro jednotlivé uživatele, to znamená pro objekty typu User. Je určen k provádění příkazů, které se týkají jen daného uživatele. Každému uživateli je možné definovat pouze jeden login script tohoto typu. Má-li jej přihlašující se uživatel definován, provádí se mu jako poslední ze všech jeho login scriptů.
Implicitní login script (default login script) zaujímá mezi zmiňovanými typy login scriptů poněkud zvláštní pozici. Pro přihlašující se uživatele je totiž prováděn automaticky, aniž by o to bylo požádáno, ale jen v případech, kdy nemají definován vlastní uživatelský login script. Implicitní login script není v systému přiřazen žádnému objektu, jeho obsah je předdefinován a nelze jej modifikovat. Realizuje mimo jiné jednu velmi významnou činnost, a sice zajišťuje mapování adresáře SYS:PUBLIC pro vyhledávání. V této souvislosti je třeba si uvědomovat, že po vytvoření uživatelského login scriptu může zmíněné nastavení chybět, takže je pak potřebné zajišťovat je pro uživatele v jiném typu login scriptu explicitně. Provádění implicitního login scriptu lze zakázal příkazem NO_DEFAULT.
Login scripty jsou v systému uchovávány ve formě vlastností příslušných objektů eDirectory (tzn. objektů typu Organization, Organizational Unit, Profile a User). Běžní uživatelé mají standardně právo modifikovat jen svoje uživatelské login scripty. Stane-li se při přihlašování uživatele, že v rámci provádění login scriptů je například jeden diskový symbol mapován postupně různými příkazy na různé adresáře, uplatní se pochopitelně poslední provedený příkaz.
Použití login scriptu má podobný charakter jako práce s velmi jednoduchým programovacím jazykem. Je v něm totiž k dispozici jistá množina příkazů a syntaktických pravidel, jejichž prostřednictvím se zadávají konkrétní požadavky. V souvislosti s pravidly syntaxe, která je potřeba dodržovat při zadávání příkazů login scriptu, je třeba uvést alespoň následující nejdůležitější požadavky:
Funkce: Výpis zprávy na obrazovku
Formát: WRITE "[text] [%proměnná]"" [;][proměnná]
Parametry:
Příkaz WRITE zobrazuje zadanou zprávu na obrazovce pracovní stanice uživatele. Tato zpráva může být tvořena jednak zadaným textovým řetězcem uvedeným v parametru text, jednak aktuálním obsahem interní proměnné login scriptu definované pomocí parametru proměnná (viz dále). Jeho prostřednictvím lze tedy zobrazovat zprávy, jejichž obsah je závislý na aktuálních okolnostech. Pro spojení několika textových řetězců a interních proměnných do jedné zprávy (bez uzavírání proměnné do uvozovek) se umísťuje mezi text a proměnnou znak ; (středník). Pokud je v rámci login scriptu použito několik příkazů WRITE, bude text každého z nich zobrazen na zvláštním řádku. Je-li požadováno, aby tyto texty byly zobrazeny jako souvislá zpráva na jednom řádkuje třeba každý z těchto příkazů kromě posledního zakončit středníkem.
Zadávané textové řetězce mohou obsahovat následující řídicí znaky:
Mimo středníku lze použít při vytváření složených řetězců ještě i následující dodatečné znaky, a to v uvedených významech:
Příklad:
Uživateli bude při přihlašování do sítě zobrazen text složený s částí „Pracujete na serveru“, jméno aktuálního serveru, "přihlášen jako" a přihlašovací jméno.
WRITE "Pracujete na serveru "; FILE_SERVER;" přihlášen jako LOGIN_NAME
Pro login script udržuje systém NetWare jisté systémové proměnné, takzvané interní proměnné login scriptu. Uživatelé je pak mohou využívat prostřednictvím některých příkazů. Při jejich používání je třeba dodržovat následující zásady:
V následujícím přehledu jsou interní proměnné login scriptu rozděleny do několika skupin podle toho, kterých oblastí se týkají.
A další, které lze dohledat v dokumentaci. Mezi ně patří proměnné týkající se uživatele, pracovní stanice, sítě, NetWare Mobile, DOSu, vlastností objektů a ostatních.
Funkce: Podmíněný příkaz
Formát: IF podmínka THEN příkaz1 [ELSE příkaz2] [END]
Parametry:
Příkaz IF...THEN umožňuje realizovat v rámci login skriptu podmíněné příkazy, to znamená provádět některé příkazy jen za určitých okolností. Tyto podmíněné příkazy testují podmínku zadanou parametrem podmínka a podle výsledku tohoto testu provádějí příslušné příkazy. Pokud je zadaná podmínka splněna, provede se příkaz definovaný parametrem přikaz1. Když splněna není, záleží na tom, zda je uveden nepovinný parametr příkaz2. Je-li použit, provede se příkaz, který je v něm zadán, jinak se pokračuje přechodem na následující příkazy login skriptu.
V parametru podmínka může být použit jednoduchý nebo složený podmínkový výraz. Jednoduchý podmínkový výraz je zpravidla reprezentován dvěma operandy a jedním operátorem (např. K < "5"). Složený podmínkový výraz se vytváří z několika jednoduchých výrazů použitím spojovacích členů AND (logický součin) a OR (logický součet).
Jako operandy zmíněných podmínek je možné použít konkrétní zadané hodnoty, interní proměnné login skriptu, případně parametry uvedené při zadání příkazu LOGIN nebo v přihlašovacím okně (např. „%2“). V roli operátorů lze užívat následující symboly:
V rámci příkazu IF...THEN je potřeba dodržovat následující doporučení:
IF DAY_OF_WEEK-"MONDAY" THEN WRITE "Přeji příjemný začátek týdne!" ELSE WRITE "Přeji příjemný pracovní den!" END
Uvedený příkaz IF...THEN bude uživatele vítat každé pondělí při přihlašování do sítě textem uvedeným v prvním z příkazů WRITE a další dny jim potom bude zobrazovat text daný druhým z příkazů WRITE.
Funkce: Zobrazení informace o čase předchozího přihlášení
Formát: LASTLOGINTIME
Příkaz LASTLOGINTIME zobrazuje čas posledního přihlášení do sítě, jež bylo pod tímto uživatelským jménem provedeno. Při jeho použití si mohou uživatelé jednoduše kontrolovat, zda se jejich jménem nehlásí do sítě i někdo jiný (např. nepovolaná osoba).
Funkce: Mapování symbolů disků
Formát: MAP [volba] [symbol:=cesta] [\symbol:=cesta]...
Parametry:
Příkaz MAP provádí v rámci login scriptu mapování symbolů disků (drive mapping), případně mapování disků pro vyhledávání (search drive mapping). Je obdobou příkazové utility MAP a v login scriptech je hojně používán.
Mapovaný symbol disku se zadává parametrem symbol. Může jím být symbol disku (např. G:), pořadové číslo síťového disku (např. *2:) nebo symbol disku pro vyhledávání (např. S4:). Na co má být daný symbol mapován,
se uvádí v parametru cesta. V něm lze použít jméno logického disku, specifikaci síťového adresáře nebo jméno objektu typu Directory Map. V rámci jednoho příkazu MAP použitého v login scriptu je možné zadat i více
než jedinou dvojici symbol:=cesta, přičemž k jejich oddělení pak slouží středník.
Příklady:
MAP L:=FS1/VOL1:
Symbol L: bude mapován na logický disk VOL1 umístěný na serveru FS1.
MAP *2:=SYS:PUBLIC;*3:=VOL1:WORK
Druhý síťový disk bude mapován na adresář SYS:PUBLIC a třetí na VOL1:WORK.
Funkce: Pozastavení vykonávání login scriptu
Formát: PAUSE
Příkaz PAUSE pozastavuje provádění login scriptu. Přitom se také vypisuje na obrazovku dané pracovní stanice zpráva „Strike any key when ready...“. Pokračování v další činnosti se dosáhne stiskem kterékoli klávesy (mimo Shift apod.). Uvedený příkaz se používá například bezprostředně po příkazech, které vypisují text, aby si uživatel mohl text pohodlně přečíst.