VB-Script: DNS-Server nach PCnamen abfragen
Hallo,
Ich möchte für etwa 300-400 Rechner eine unbeaufsichtigte WindowsXP installation mit etwa 30-40 Programmen erstellen.Das ganze mithilfe von sysprep.Die sysprepkonfigurationsdatei muss nun für jeden Rechner bei der Installation neu geschriben werden.
Unter anderm brauch ich dafür eben den "richtigen" PC-Namen, der beim DNS-Server hinterlegt ist.
Momentan werden die Rechner inklusive allen Programmen installiert, aber es wurde ein zufälliger Name vergeben.
Jetzt möchte ich gerne das nach dem letzten reboot, der PCName mit dem beim DNS-Server hinterlegtem Namen ersetzt wird.
ich habe folgendes hie rim Boar gefunden:
for /f "delims=" %%i in ('ipconfig /all ^|findstr "Hostname DNS-Suffix"') do echo %%i> \\server\freigabe\%computername%.txt
aber Hostname DNS-Suffix gibt es nicht unter "ipconfig /all" nur eben "Primary DNS Suffix" wo nichts steht.
Hat jemand ein vbscript um diesen Namen anhand der vergebenen IP beim DNS-Server abzufragen???
Wäre super,
vielen dank schonmal
Ich möchte für etwa 300-400 Rechner eine unbeaufsichtigte WindowsXP installation mit etwa 30-40 Programmen erstellen.Das ganze mithilfe von sysprep.Die sysprepkonfigurationsdatei muss nun für jeden Rechner bei der Installation neu geschriben werden.
Unter anderm brauch ich dafür eben den "richtigen" PC-Namen, der beim DNS-Server hinterlegt ist.
Momentan werden die Rechner inklusive allen Programmen installiert, aber es wurde ein zufälliger Name vergeben.
Jetzt möchte ich gerne das nach dem letzten reboot, der PCName mit dem beim DNS-Server hinterlegtem Namen ersetzt wird.
ich habe folgendes hie rim Boar gefunden:
for /f "delims=" %%i in ('ipconfig /all ^|findstr "Hostname DNS-Suffix"') do echo %%i> \\server\freigabe\%computername%.txt
aber Hostname DNS-Suffix gibt es nicht unter "ipconfig /all" nur eben "Primary DNS Suffix" wo nichts steht.
Hat jemand ein vbscript um diesen Namen anhand der vergebenen IP beim DNS-Server abzufragen???
Wäre super,
vielen dank schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53454
Url: https://administrator.de/forum/vb-script-dns-server-nach-pcnamen-abfragen-53454.html
Ausgedruckt am: 11.05.2025 um 11:05 Uhr
13 Kommentare
Neuester Kommentar
Hallo J3nny1981!
Auf die Schnelle hätte ich eine Batch-Lösung anzubieten:
Zunächst wird die IP-Adresse der ersten Netzwerkkarte ausgelesen und damit der Computername bestimmt und in der Variablen %CName% gespeichert.
Falls Du den FQDN brauchst, lass einfach in der letzten Zeile nach "delims=" den Punkt weg.
Grüße
bastla
Auf die Schnelle hätte ich eine Batch-Lösung anzubieten:
@echo off & setlocal
Set IPAdr=
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Adresse"') do if not defined IPAdr set "IPAdr=%%i"
for /f "tokens=2 delims=. " %%i in ('nslookup %IPAdr%^|find "Name"') do set "CName=%%i"
Falls Du den FQDN brauchst, lass einfach in der letzten Zeile nach "delims=" den Punkt weg.
Grüße
bastla
Hallo J3nny1981!
klappen (auf jeden Fall, wenn Du stattdessen ein VBScript einsetzt).
Grüße
bastla
dass er %CNAME% in eine C:\sysprep.inf datei in Zeile 28, Zeichen 6 schreibt?
Vielleicht, indem Du in eine "sysprep1.txt" alles bis Zeile 28, Zeichen 5, schreibst, statt "set" gleich ein "echo %%i>sysprep2.txt" verwendest und in einer "sysprep3.txt" den Rest bereits vorweg ablegst. Danach könnte eincopy sysprep1.txt + sysprep2.txt + sysprep3.txt sysprep.inf
Grüße
bastla
Hallo J3nny1981!
Wenn Du den Punkt nach dem "delims=" drinnen lässt, müsste er nach dem Namen abschneiden. Was Du auf jeden Fall machen kannst, wenn der Name sicher 5 Zeichen lang ist: weiterhin mit set "CName=%%i" den Namen in eine Variable schreiben und danach mit
nur die ersten 5 Zeichen davon in die Textdatei ausgeben.
Grüße
bastla
Wenn Du den Punkt nach dem "delims=" drinnen lässt, müsste er nach dem Namen abschneiden. Was Du auf jeden Fall machen kannst, wenn der Name sicher 5 Zeichen lang ist: weiterhin mit set "CName=%%i" den Namen in eine Variable schreiben und danach mit
echo %CName:~0,5%>sysprep2.txt
Grüße
bastla
davon brauche ich ja nun den teil "pc-2116".
ich finde das witzig, dass auf Euren Rechnern der String "pc-2116" 5 Zeichen lang ist.Welche Windows-Version ist das denn?
Abgesehen davon würde ich es so machen, wie bastla es weiter oben beschrieben hat:
a) CMD-Prompt-Demo:
>for /f "tokens=2 delims=. " %i in ('nslookup 10.20.100.80^|find "Name"') do @echo %i
...
for /f "tokens=2 delims=. " %%i in ('nslookup 10.20.100.80^|find "Name"') do set "CName=%%i"
...
Dann sind immer die (gefühlten) 5 oder so Zeichen in der Variable %CName%.
Gruss
Biber
@Biber
Na ja, eigentlich stand das auch oben schon so drinnen, und daher freut es mich, dass ich meinen Ansatz bereits vorweg an Deine Lösung angleichen konnte.
@J3nny1981
Hinsichtlich des Zusammenfügens wäre es wahrscheinlich günstiger, nur die ersten 27 Zeilen in "sysprep1.txt" zu schreiben und die Zeile 28 zur Gänze per Batch zu erstellen (also auch die ersten 5
Zeichen gleich mit dem "echo" auszugeben).
Grüße
bastla
Na ja, eigentlich stand das auch oben schon so drinnen, und daher freut es mich, dass ich meinen Ansatz bereits vorweg an Deine Lösung angleichen konnte.
Welche Windows-Version ist das denn? 
Natürlich Version 5.1.2600@J3nny1981
Hinsichtlich des Zusammenfügens wäre es wahrscheinlich günstiger, nur die ersten 27 Zeilen in "sysprep1.txt" zu schreiben und die Zeile 28 zur Gänze per Batch zu erstellen (also auch die ersten 5
Grüße
bastla
..als emotional unbeteiligter Beobachter würde ich behaupten, das passiert jedem, der in einer Ausgabe mit der Zeile
"IP Address. . . . . . . . . . . . : 10.20.100.70" nach dem String "IP Adress" sucht.
"Address"schreibt sich auf ausländisch mit Doppel-D.
Wenn Du sowohl deutsche wie auch US-M$-Versionen im Einsatz/in der Domäne hast, musst Du auf Nummer Sicher gehen:
Gruss
Biber
"IP Address. . . . . . . . . . . . : 10.20.100.70" nach dem String "IP Adress" sucht.
"Address"schreibt sich auf ausländisch mit Doppel-D.
Wenn Du sowohl deutsche wie auch US-M$-Versionen im Einsatz/in der Domäne hast, musst Du auf Nummer Sicher gehen:
...
Set "IPAdr="
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP Address"') do set "IPAdr=%%i"
If [%IPAdr%]== for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Adresse"') do set IPAdr=%%i
Echo %IPAdr%
REM oder: Echo %IPADr%>test.txt
...
Gruss
Biber