Windows 2003 Shell Scripting

Shell Scripting im Netzwerk

Domain Controller finden

Das folgende Script kann als Test verwendet werden, ob die DNS-Einträge für den Beitritt zu einer Domäne richtig konfiguriert sind. Alternativ lässt sich damit auch einfach ein Domain Controller für die angegebene Domain finden.

Parameter

  • %1 = DNS-Name der Domain

Code

@echo off

:: haben wir einen parameter?
if x%1 == x (echo Bitte DNS-Namen der Domain angeben.) &
goto :eof

:: DNS-Abfrage nach dem service record und suche der
hosts
:: ACHTUNG! Das folgende Kommmando ist *eine* logische
Zeile!
nslookup -type=SRV _ldap._tcp.dc._msdcs.%1 2> nul | find
"hostname" > %temp%\dclist.txt

:: nichts gefunden? dann fehlermeldung ausgeben
if errorlevel 1 (echo Kein DC fuer %1 gefunden.) & goto
:eof

:: verarbeiten der liste der domain controller
call :process %temp%\dclist.txt
if defined DCNAME echo Domain Controller fuer %1:
%DCNAME%

:: shell script beenden
goto :eof


:: verarbeiten der liste der domain controller
:process
set DCNAME=
if not exist %1 (echo Datei %1 existiert nicht) & goto
:eof
if %~z1 == 0 (echo Datei %1 ist leer) & goto :eof
for /F "delims== tokens=2" %%f in (%1) do @set
DCNAME=%%f
set DCNAME=%DCNAME: =%
del %temp%\dclist.txt
goto :eof