20.01.2013 Aufrufe

Netzwerk - TecChannel

Netzwerk - TecChannel

Netzwerk - TecChannel

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!