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