15.31 Ein vollständiges Beispielskript für unsere Organisation »Company.local«
 
Nachdem in den vorangegangenen Übungen an vielen Einzelbeispielen demonstriert wurde, was alles über Tools des Windows Server Resource Kits oder mit Freeware-Tools aus der Freeware-Szene möglich ist und wie man diese Tools in Batchroutinen verwendet, zeige ich Ihnen nun ein vollständiges Beispielskript für unsere Company. Sie finden das Skript unter dem Namen NETLOGON.CMD und können es unter der Kennung Testuser ausprobieren.
Das Skript überprüft unter anderem, dass nicht vergessen wurde, bei der Einrichtung des Anwenderkontos das Laufwerk Z: mit \\s1\users\%username% zu verbinden, wie die folgende Abbildung zeigt.
 Hier klicken, um das Bild zu Vergrößern
Wenn Sie ein Verzeichnis Users auf dem Server eingerichtet hatten und dieses Verzeichnis unter demselben Namen freigegeben ist, wird sofort ein Unterverzeichnis mit dem Anmeldenamen des Benutzers generiert und mit passenden Rechten versehen, sobald Sie auf die Schaltfläche Übernehmen klicken. Die Variable %username% wird durch den Anmeldenamen des Anwenders ersetzt. Der Anwender hat jetzt ein Basisverzeichnis auf dem Server. Auf ähnliche Weise, wie das Skript nachprüft, dass ein Basisverzeichnis mit dem Laufwerk Z: verbunden wurde, können Sie im Skript auch prüfen, ob ein Profilpfad für ein servergespeichertes Anwenderprofil auf dem Server erstellt wurde.
Das Skript ist durch REM-Zeilen ausreichend dokumentiert, so dass jeder Administrator der Organisation jederzeit nachvollziehen kann, was dort geschieht. Sensible Befehle wie diejenigen, die mittels des SU-Befehls administrative Dinge ausführen, sind allerdings nicht kommentiert. Ein zu neugieriger Anwender soll schließlich nicht erfahren, wie er sich administrative lokale Rechte auf seinem Computer verschaffen kann.
Wenn das Skript bei Ihnen Fehlermeldungen ergibt oder bestimmte Ergebnisse nicht eintreffen, gehen Sie wie folgt vor:
Kommentieren Sie die Zeile @echo off aus (REM @echo off) und fügen Sie an mehreren Stellen pause-Befehle ein. Sie können so eingrenzen, wo im Skript etwas schief läuft. Wahrscheinlich werden Sie dann auch noch die Umleitung der Befehlsmeldungen > NUL bzw. > NUL: 2>&1 deaktivieren müssen, damit Sie die Fehlerquelle ermitteln können.
Durch den Aufruf der Unterroutine hlm.cmd wird ein zweites Fenster geöffnet. Das sieht – zugegeben – ein wenig unschön aus. Sie können jedoch später, wenn das Skript hlm.cmd fehlerlos läuft, mittels des start-Befehls versuchen, diese Unterroutine in einem minimierten Fenster laufen zu lassen. Die Syntax start /min <Befehl>… ermöglicht so etwas. Geben Sie den Befehl start /? ein, um sich die möglichen Parameter des Befehls start und deren Bedeutung anzeigen zu lassen.
15.31.1 Anmeldeskript für den Small Business Server
 
Bei der Installation des Small Business Server 2003 wird in der Netlogon-Freigabe das Anmeldeskript sbs_login_script.bat angelegt. Es besteht nur aus einer Zeile:
\\%Servername%\Clients\Setup\setup.exe /s %Servername%
Die dort eingetragene Freigabe »Clients« ist das Verzeichnis C:\Programme\Microsoft Windows Small Business Server\ClientSetup\Clients. Wird ein Benutzer über den Benutzer-Assistenten der Serververwaltungskonsole angelegt, so wird dieses Anmeldeskript in das Konto des Benutzers eingetragen. Es wird damit bei jeder Anmeldung eines Benutzers ausgeführt. Über die in diesem Default-Anmeldeskript gestartete setup.exe werden z.B. die Updates und Anwendungen auf einem neuen Client installiert, die dem Client über den Clientcomputer-Assistenten zugewiesen wurden. Vermutlich ist diese Routine aber auch noch für andere Dinge zuständig. Deshalb sollte sie nicht gelöscht oder deaktiviert werden.
Dennoch wollen Sie nach dem Lesen des Kapitels Das Anmeldeskript bestimmt mehr über das Anmeldeskript bewerkstelligen, als die eine Zeile des SBS-Default-Anmeldeskriptes abzuarbeiten. Prinzipiell können Sie alles, was Sie nach dem Lesen des Kapitels für sinnvoll halten, auch in das Anmeldeskript eines Small Business Servers integrieren. Sie können sogar eine cmd-Datei wie z.B. netlogon.cmd statt der Datei sbs_login_script.bat verwenden und in die Konten der Benutzer eintragen, denn cmd-Skripte bieten gegenüber bat-Skripten mehr Befehle mit mehr nutzbaren Parametern. Wenn Sie die bei der Installation des Small Business Servers angelegten Benutzervorlagen entsprechend ändern, wird für neu angelegte Benutzer zukünftig der geänderte Name des Anmeldeskriptes automatisch eingetragen.
Nachfolgend finden Sie ein erweitertes SBS-Anmeldeskript, in das die Zeile des originalen Anmeldeskriptes eingefügt wurde. Dieses Skript können Sie als Vorlage nehmen und beliebig erweitern.
@echo off
cls
echo.
echo Anmeldung an der Domaene %USERDNSDOMAIN%
echo.
md c:\Temp > NUL: 2>&1
REM Das Gruppenverzeichnis wird auf T: gemappt:
net use t: /del > NUL: 2>&1
net use t: "\\S1\Daten" > NUL: 2>&1
REM Das zentral auf dem Server gepflegte Gruppenvorlagenverzeichnis
REM wird mit dem lokalen Vorlagenverzeichnis synchronisiert,
REM damit auf Gruppenvorlagedateien auch im Offlinebetrieb
REM zugegriffen werden kann.
start /min %LOGONSERVER%\netlogon\util\robocopy.exe t:\Vorlagen
c:\Vorlagen /mir /w:0 /r:0 > NUL: 2>&1
REM Die einzige Befehlszeile des Standard-Anmeldeskriptes
REM SBS_LOGIN_SCRIPT.bat wird jetzt ausgeführt:
\\S1\Clients\Setup\setup.exe /s S1
REM Wenn es für einen Benutzer zusätzlich ein spezielles
REM Anmeldeskript gibt, wird dieses zuletzt gestartet:
if exist %LOGONSERVER%\netlogon\Userscripts\logon\%USERNAME%.cmdđ
%LOGONSERVER%\netlogon\Userscripts\logon\%USERNAME%.cmd
|