Netzwerk - TecChannel
Netzwerk - TecChannel
Netzwerk - TecChannel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
1. <strong>Netzwerk</strong>-Praxis<br />
Jetzt wird der durch fi nd erzeugte Errorlevel geprüft und bei einem Inhalt ungleich<br />
0 eine Meldung ausgegeben, dass kein Domain Controller gefunden wurde.<br />
Verarbeitung der Ergebnisdatei<br />
Im Anschluss folgt die Verarbeitung der Ergebnisdatei. Um hier auch eine Prüfung<br />
auf leere Dateien und andere mögliche Probleme zu ermöglichen, wird nicht direkt<br />
mit dem Lesen der Datei begonnen, sondern über das Kommando call eine<br />
interne Sprungmarke aufgerufen, die als ersten Parameter den Namen der Ergebnisdatei<br />
erhält. Damit Sie nicht zurückblättern müssen, hier nochmals der Teil des<br />
Scripts, der die Verarbeitung der Ergebnisdatei übernimmt.<br />
:: verarbeiten der liste der domain controller<br />
:process<br />
set DCNAME=<br />
if not exist %1 (echo Datei %1 existiert nicht) & goto<br />
:eof<br />
if %~z1 == 0 (echo Datei %1 ist leer) & goto :eof<br />
for /F "delims== tokens=2" %%f in (%1) do @set<br />
DCNAME=%%f<br />
set DCNAME=%DCNAME: =%<br />
del %temp%\dclist.txt<br />
goto :eof<br />
Zuerst wird die Umgebungsvariable DCNAME geleert (falls Sie einen anderen Namen<br />
bevorzugen, verwenden Sie ihn einfach, dann aber überall im Batch). Jetzt<br />
wird sicherheitshalber geprüft, ob die angegebene Datei überhaupt existiert. Danach<br />
folgt ein Test, ob die Datei leer ist oder nicht, indem die Dateigröße auf 0<br />
Byte getestet wird.<br />
Nun wird in einer for-Schleife jede Zeile der Datei gelesen. Als Trennzeichen wird<br />
das Gleichheitszeichen defi niert, und wir lesen das zweite Token (dies ist der Teil<br />
nach dem „=“ mit dem Hostnamen). Dieses Token wird per set in der Variablen<br />
DCNAME gespeichert. Diese Schleife ist auch der Grund, warum bei mehr als einem<br />
Domain Controller immer der letzte verwendet wird. Jeder Durchlauf überschreibt<br />
den vorherigen Inhalt der Umgebungsvariablen. Als kleine Übung können<br />
Sie das Shell Script so umbauen, dass nach der ersten erfolgreichen Zuweisung<br />
die Schleife die Variable nicht mehr belegt. Als Übung für Fortgeschrittene<br />
sollten Sie versuchen, die Schleife so zu ändern, dass bei mehr als einem Domain<br />
Controller alle Hostnamen durch Leerzeichen getrennt in der Variablen DCNAME<br />
enthalten sind.<br />
Nach der for-Schleife werden noch alle eventuell vorhandenen Leerzeichen in<br />
der Variablen entfernt, sodass nur der Hostname übrig bleibt. Die nun nicht mehr<br />
benötigte Datei wird gelöscht, damit folgen das Beenden des Aufrufs und die<br />
Rückkehr zum Hauptbatch.<br />
Wie Sie sehen, ist der Aufwand auch für Aufgabenstellungen, die normalerweise<br />
gleich an VBScript und LDAP denken lassen, mit der Shell nicht sehr groß und<br />
30 www.<strong>TecChannel</strong>.de