15.3 Das Anmeldeskript strukturieren
 
Weil man mit Anmeldeskripten komplexe Netzwerke steuern und bereits ausgelieferte Clients nachträglich fast beliebig manipulieren kann, nehmen sie mit der Zeit immer mehr Befehle und Unterroutinen auf. Damit ein derartig gewachsenes Anmeldeskript auch für einen Dritten durchschaubar bleibt, sollte es von Anfang an strukturiert angelegt werden. Unter Novell Netware gab es ein System-Anmeldeskript und ein User-Anmeldeskript. Im System-Anmeldeskript wurden Befehle ausgeführt, die die Umgebung aller am Netz sich anmeldenden Computer und Anwender definierten. Im User-Anmeldeskript wurden Befehle ausgeführt, die nur für denjenigen Anwender gültig sein sollten, der sich gerade am Netz anmeldete.
Am Anfang eines Anmeldeskriptes, das für alle Anwender mit Ausnahme der Mitglieder der Gruppen Domänen-Admins und Organisations-Admins durchlaufen wird, könnte eine Sicherheitsabfrage stehen, die das Skript sofort beendet, wenn es versehentlich auf einem Server oder unter einer Administratorkennung abläuft. Da das Anmeldeskript Befehle enthalten kann, die nur für Windows-XP-Clients sinnvoll sind, könnte es sehr schädlich sein, wenn es versehentlich ausgeführt wird, während sich ein Administrator an einem Server anmeldet.
Werden über das Anmeldeskript Service Packs oder Updates zu Windows XP oder Microsoft Office installiert oder Anwendungen hinzugefügt oder geupdatet, so sollte dieses geschehen, bevor die weiteren benutzerspezifischen Befehle ausgeführt werden, denn eventuell muss danach der Client neu gestartet werden, oder die nachfolgenden Befehle basieren vielleicht auf der Voraussetzung, dass die Installationsroutinen erfolgreich durchgeführt wurden.
Danach sollten Befehle eingefügt werden, die den Windows-XP-Client betreffen und daher maschinenspezifisch sind. Diesen Befehlen können sodann Befehle oder Unterroutinen folgen, die für alle Benutzer der Domäne gelten sollen, gefolgt von Befehlen, die für bestimmte Benutzergruppen wie ganze Abteilungen gültig sein sollen.
Zum Schluss folgt dann eine Abfrage, ob es ein individuelles Anmeldeskript für den Benutzer gibt, der sich gerade anmeldet. Ein solches Skript nimmt z.B. spezielle Netzdruckerzuweisungen für einzelne Benutzer vor oder verbindet für diesen Benutzer eine spezifische Serverfreigabe mit einem Laufwerk:
if exist %LOGONSERVER%\netlogon\Userscripts\logon\%USERNAME%.cmd
%LOGONSERVER%\netlogon\Userscripts\logon\%USERNAME%.cmd
Über Konstrukte wie z.B. if Bedingung goto Sprungmarke können Teile des Anmeldeskripts übersprungen werden. Wird ein Anmeldeskript immer länger, so ist auch die Fehlersuche immer komplizierter. Spätestens dann sollten Teile des Skripts in Unterskripte ausgelagert werden. Die Ausführung dieser Unterskripte kann ebenso von einer Bedingung abhängen:
if not exist %SystemRoot%\System32\DateiXYZ call %LOGONSERVER%\NETLOGON\Batch\xyz.cmd
Jedes Skript sollte durch Remark-Zeilen ausreichend dokumentiert sein.
|