WinFuture-Forum.de: Import Einer Textdatei In Dns - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Import Einer Textdatei In Dns Nach export einer Textdatei wieder Import per Batch


#1 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 27. Januar 2010 - 14:35

Hi @ all,

ich habe eine Textdatei aus DNS exportier:

CODE
host1 (A) IP-Adresse1
host2 (A) IP-Adresse2
host3 (A) IP-Adresse3
host4 (A) IP-Adresse4


(das sind natürlich nicht die richtigen Daten :P aber der Aufbau ist gleich.)

Nun möchte ich diese Textdatei mit zusätzlich manuell hinzugefügten Hosts wieder in DNS importieren.

Ich würde nun gerne die Hostnamen und die IP-Adressen aus der Datei auslesen und dann als Variable in das Batchscript einbauen.
Dann kann ich diese Variablen (z.B %HOST% und %IP%) mit diesem Befehl in DNS importieren.

CODE
dnscmd Servername /RecordAdd Zonenname %HOST% A %IP%


Hier mal mein bisheriger Code:

CODE
@echo

:START
cls



For /F "Tokens=1 Delims= " %%A In (dns.txt) Do (

set HOST= %%A

)

For /F "Tokens=4,* Delims= " %%B In (dns.txt) DO (

set IP= %%B

)

dnscmd Servername /RecordAdd Zonenname %HOST% A %IP%

pause >nul




Ich habe einfach keine Ahnung mehr wie ich weiter machen könnte.
Hat jemand von euch noch eine Idee oder eine Andere Lösung mit bspw. vbs.

Vielen Dank schon mal an alle,

Mfg

Max
0

Anzeige



#2 Mitglied ist offline   aeris 

  • Gruppe: aktive Mitglieder
  • Beiträge: 129
  • Beigetreten: 06. September 08
  • Reputation: 12
  • Geschlecht:unbekannt

geschrieben 27. Januar 2010 - 15:14

Hoffe ich habe dich richtig verstanden.

Die Batch-Datei liest aus einer text Datei Host und IP-Addressen und fuehrt dann mit denen einen Befehl aus.
@echo off
FOR /F "tokens=1,3" %%a IN (dns.txt) DO dnscmd Servername /RecordAdd Zonenname %%a A %%b
pause >nul

0

#3 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 27. Januar 2010 - 15:25

Vielen Dank erst mal für die schnelle Antwort :P

Aber bei dem Code bekomme ich folgende Fehlermeldung:


CODE
Command failed: ERROR_INVALID_PARAMETER 87 (00000057)

Check the required arguments and format of your command.

0

#4 Mitglied ist offline   prunkster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 281
  • Beigetreten: 22. Mai 08
  • Reputation: 5
  • Geschlecht:Männlich

geschrieben 27. Januar 2010 - 15:52

Server- und ZoneName entsprechend angepasst? Hab's eben mal testweise auf meinem Homeserver laufen lassen, da läuft es einwandfrei durch und erstellt die neuen Records...

//edit:
Bzw. ist aus Versehen das "A %%b" in deiner .bat/.cmd in eine neue Zeile verrutscht? Muss natürlich in einer Zeile mit "FOR...DO dnscmd..." stehen.

Dieser Beitrag wurde von prunkster bearbeitet: 27. Januar 2010 - 15:56

Eingefügtes Bild <--- Workstation@Home

My Blog: hier
0

#5 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 27. Januar 2010 - 17:23

Hi prunkster,

bei mir hat das so nicht funktioniert.
Könntest du dein komplettes Script hier rein stellen, also mit hostname des Servers und der Zonendatei?
Ich kann das bei mir leider nicht da ich das Skript für die Firmwa brauche, aber hier noch mal eine Beispiel wie ich glaube, dass es stimmen könnte aber es funktioniert bei mir nicht:

CODE
@echo off
FOR /F "tokens=1,3" %%a IN (dns.txt) DO dnscmd dnsserver.domainname.de /RecordAdd Zonenname.de %%a A %%b
pause >nul

0

#6 Mitglied ist offline   prunkster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 281
  • Beigetreten: 22. Mai 08
  • Reputation: 5
  • Geschlecht:Männlich

geschrieben 27. Januar 2010 - 19:53

Abend laaberlachs,

hab eben mein Script noch mal ein bisschen überarbeitet, und bin dabei glaube ich auch über die Lösung zu deinem Fehler gestossen.

Hier das Script:
@echo off
cls

set /P servername=Bitte Servernamen eingeben:
if "%servername%"=="" set servername=%COMPUTERNAME%
cls

set /P zonename=Bitte Zonennamen eingeben:
if "%zonename%"=="" set zonename=%USERDNSDOMAIN%
cls

FOR /F "tokens=1,4" %%a IN (dns.txt) DO (
echo.
echo Fuege Host %%a mit IP %%b der Zone %zonename% auf Server %servername% hinzu...
echo.
echo dnscmd %servername% /RecordAdd %zonename% %%a A %%b
echo.
echo.
dnscmd %servername% /RecordAdd %zonename% %%a A %%b
echo.
)
pause >nul


Und hier meine entsprechende dns.txt:
host1	Host (A)	192.168.7.1
host2	Host (A)	192.168.7.2
host3	Host (A)	192.168.7.3
host4	Host (A)	192.168.7.4


Hatte mir zuerst für den Test einfach mal deinen oben angegebenen DNS-Export genommen, damit funktionierte es wunderbar. Hab jetzt mal hier 'nen Export gemacht, und dabei ist mir aufgefallen, dass vier Trennzeichen vorhanden sind (die Werte sind einzeln per Tab getrennt, und zwischen "Host" und "(A)" ist ja auch noch ein Leerzeichen :grin: ).
Kurzum, wenn du die Hosts vom DNS-Export wieder importieren willst, brauchste an dem neuen Script nix ändern. Haste die Einträge dagegen bearbeitet (wie z.B. das "Host" vor "(A)" entfernt), musst du noch den Token-Wert abändern (nach dem, was im Ausgangspost steht, in "token=1,3").

Hab nochmal beides im Anhang als .txt, musst dann bei der dns_add.cmd.txt entsprechend nur die .txt-Extension entfernen.

Btw: Wenn du das Script direkt auf dem DNS-Server ausführst, solltest du die Eingabe von Server- und Zonenname überspringen können, ermittelt das Script dann selbst. Falls aber doch gebraucht, bei mir wären es einfach z.B. server1 und domain.local (als Beispiel ;))

Hope that lüppt ;)

Angehängte Datei(en)


Eingefügtes Bild <--- Workstation@Home

My Blog: hier
0

#7 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 28. Januar 2010 - 10:11

Vielen vielen Dank hat super funktioniert!!!!!!!!!! :grin:

Schönen Tag euch allen.
0

#8 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 28. Januar 2010 - 12:37

Mir ist aufgefallen, dass die DNS-Einträge die erstellt werden zwar ein Häkchen bei "Entsprechenden Zeigereintrag (PTR) aktualisieren" gesetzt haben, ein entsprechender PTR Zeiger wird aber nicht in der Reverse-Lookupzone erstellt.

Gibt es eine Möglichkeit z.B einen Befehl mit dem man diesen Zeiger eintragen für jeden host in der Textdatei eintragen kann kann?
(Den entsprechenden Ordner unter der Reverse-Lookupzone habe ich erstellt.)
0

#9 Mitglied ist offline   prunkster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 281
  • Beigetreten: 22. Mai 08
  • Reputation: 5
  • Geschlecht:Männlich

geschrieben 28. Januar 2010 - 23:40

selbes spiel, diesmal die einträge des dns-exports zur reverse lookup zone hinzufügen.

wenn die richtige(n) lookup-zone(n) bereits existieren sollte es eigentlich funktionieren. hoffe nur dass mein schlaf- und koffeinentzug gerade nicht mein gehirn außer kraft gesetzt hat und es das ist was du suchst :smokin:

Angehängte Datei(en)


Eingefügtes Bild <--- Workstation@Home

My Blog: hier
0

#10 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 01. Februar 2010 - 12:27

Sorry, dass ich nicht sofort antworte aber ich hatte in letzter Zeit viel zu tun.

Dein Scrypt für die Reverse-Lookupzone funktioniert bei mir nur zum teil.
Wenn ich es ausführe sagt er, dass ales successfully ausgeführt wurde. Wenn ich nun aber das DNS-Snapin öffne sehe ich die Einträge nicht im betreffenden Ordner in der Reverse-Lookupzone.

Meine Hosts welche ich importieren möchte:

host1	Host (A)	10.137.105.1
host2	Host (A)	10.137.105.2
host3	Host (A)	10.137.105.3
host4	Host (A)	10.137.105.4


Der Dateibaum ist so aufgebaut:
Reverse-Lookupzone
   + 10.in-addr.arpa
		+ 137
			+ 105
				 1			zeiger PTR				host1.domain.de.


Unter diesem Ordnerbaum kann ich den Eintrag für den Host (1 zeiger PTR host1.domain.de.) nach Ausführen des Scriptes nicht finden. (selbst nach neuladen der Zone)

Dieser Beitrag wurde von laaberlachs bearbeitet: 01. Februar 2010 - 12:30

0

#11 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 01. Februar 2010 - 17:47

Hat sich erledigt und danke nochmal für alles <_<
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0