beilage
Goto Top

VBA script für NSlookup

Hallo.... ich hab ein wenig mit meiner großen Struktur zu kämpfen und bin etwas frustriert, weil ich das alles per Hand machen muss:

Also:
Ich habe eine Exceltabelle mit FQDNs (z.B. rechner1.test.corp)

ich möchte folgenden Befehl ausführen (Im Dosfenster sieht der so aus):
nslookup (ENTER)
set type=A
rechner1.test.corp

Ich habe über 200 FQDN (manchmal aber auch nur rechner1) und ich muss diesen befehl für alles ausführen und in Excel einarbeiten...

Könnt ihr mir vielleicht helfen?

Content-Key: 171512

Url: https://administrator.de/contentid/171512

Printed on: April 20, 2024 at 02:04 o'clock

Mitglied: 60730
60730 Aug 15, 2011 at 12:37:45 (UTC)
Goto Top
Moin,

"Muß" das aus einer XLS und aus EXCEL heraus laufen?
Meine Adminrechner/ Server haben in den wenigsten Fällen Excel und csv (kann man aus einer xls erzeugen) kennt jeder.

  • Wozu das Type=A? - A steht doch für any, das trägt man doch nur ein, wenn ein vorheriges type was anderes gesetzt hat?

Gruß
Member: Beilage
Beilage Aug 15, 2011 at 12:42:07 (UTC)
Goto Top
Hallo das A steht für den Eintrag im DNS, dass er alle zugehörigen IPs auflistet, die dem A-Eintrag (Hostname) entsprechen.

Ich will das auch nicht vom Server aus machen... nslookup geht von jedem Clientrechner.

Hast du eine Idee wie ich das mache?

Gruß

Beilage
Member: Logan000
Logan000 Aug 15, 2011 at 12:48:24 (UTC)
Goto Top
Moin Moin

Umabhängig von TIMOs berechtigtem Einwand...
nslookup kennt doch parameter.

z.B.
nslookup -Type=A rechner1.test.corp

Damit kann man sich doch ein Bätch zusammen fummeln frickeln bauen.
Und falls es unbedingt sein muß auch in VBA.

Gruß L.
Member: Beilage
Beilage Aug 15, 2011 at 12:56:17 (UTC)
Goto Top
Hallo,

ja nslookup kennt Parameter. Die Excelliste mit den FQDNs hab ich mir schon per befehl eingelesen. Ich will aber nicht für über 200 FQDNs immer den nslookup befehl eingeben...
Wenn man von batchen und vba was versteht.. ok... Ich bin da mehr als blond....

Deswegen frage ich ja um hilfe.....


Gruß
Member: bastla
bastla Aug 15, 2011 at 13:00:30 (UTC)
Goto Top
Und falls es unbedingt sein muß auch in VBA.
... und da am besten per "Shell.Exec" (wie zB von den "Scripting Guys" hier - im 2. Listing - für einen "ping"-Befehl gezeigt) ...

Grüße
bastla
Member: Beilage
Beilage Aug 15, 2011 at 13:40:33 (UTC)
Goto Top
Der Tip ist nicht schlecht... ich kann aber GAR keine Programmiersprache... lach... deshalb hab ich immer nur meine Depri-fehler....

Gruß
Member: DevTig
DevTig Aug 15, 2011 at 14:38:12 (UTC)
Goto Top
Hallo,
was soll den unter dem Strich damit erreicht werden ?

Grüße
DevTig
Member: Beilage
Beilage Aug 16, 2011 at 06:16:04 (UTC)
Goto Top
Na ich möchte in Excel nslookup ausführen. In der einen Spalte habe ich FQDNs, zumindest meistens, manchmal sind es auch leere Zeilen, weil kein FQDN ermittelt werden konnte. Und das Script soll dann für alle FQDNS das nslookup machen, um alle IPs zu den jeweiligen FQDNS in der Exceltabelle aufzulisten.

Grüße
Beilage
Member: DevTig
DevTig Aug 16, 2011 at 08:41:01 (UTC)
Goto Top
Hallo,
wenn ich das richtig verstehe sind alle Rechner innerhalb einer Domäne ?!?

Und - ich interpretiere jetzt einfach mal - am Schluß soll eine Rechner/Serverdokumentation im Listenformat herauskommen mit der FQDN und der IP-Adresse der jeweiligen Maschinen ?!

Dann könnte Man(n) - Frau auch - folgendes tun:
  • Alle Rechner aus dem AD auslesen und in einen Array schreiben
  • Diesen Array mit einem Ping abarbeiten
  • Die Ergebnisse (Rechnername und IP) in eine CSV-Datei schreiben

Alles weiter könnte dann direkt im CSV oder in Excel gemacht werden.

Mal so als Idee - wenn meine Vermutung richtig ist face-smile
Member: bastla
bastla Aug 16, 2011 at 09:02:43 (UTC)
Goto Top
... um mich gleich mal anzuschließen: Auch wenn "nslookup" verwendet werden soll, wäre auch der Umweg über CSV gangbar (wenn auch nicht nötig, da, wie angesprochen, über VBA die Ausgabe eines CMD-Befehles direkt verarbeitet werden kann) - die Frage bleibt allerdings, was dann letztendlich wie in der Excel-Datei stehen soll;daher wäre es sinnvoll, eine Beispielausgabe von "nslookup" und das gewünschte Endergebnis zu posten.

Grüße
bastla
Mitglied: 60730
60730 Aug 16, 2011 at 10:04:28 (UTC)
Goto Top
Moinsen,

Zitat von @DevTig:
Hallo,
wenn ich das richtig verstehe sind alle Rechner innerhalb einer Domäne ?!?

Und - ich interpretiere jetzt einfach mal - am Schluß soll eine Rechner/Serverdokumentation im Listenformat herauskommen mit
der FQDN und der IP-Adresse der jeweiligen Maschinen ?!

Zitat von @bastla:
... um mich gleich mal anzuschließen:

@ Bastla - die Zeile muß ich mir auch ausborgen....

"Ich" würde doch den umgekehrten Weg gehen und das Schleifchen nur zur Formatierung nehmen.

Auf einer AdminKiste läuft ein täglicher Job, der aus folgendem Einzeiler besteht
dnscmd /enumrecords %userdomain%.local @ /Type A /additional>c:\pfad\dnsinfo.txt

Und dieser Einzeiler bekommt dann noch ein Schleifchen
For /f "tokens=1,5" %%a in (c:\pfad\dnsinfo.txt) do if not "%%a"=="Command" echo %%a;%%b>>c:\pfad\dnsinfo.ini  

Weil das irgendwann etwas zuviel Info wird kommt ein
if exist c:\pfad\dnsinfo.ini del c:\pfad\dnsinfo.ini
zwischen die beiden Zeilen.

Und falls es wirklich FQDN sein soll, dann sieht man oben ja, was %userdomain% bewirkt und in dem Fall wäre die gewünschte Ausgabe
%%a.%Userdomain%;%%b
fertig ist der Lack, wenn ich der Lackierer wäre.

Gruß