Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB-Script: DNS-Server nach PCnamen abfragen

Frage Entwicklung VB for Applications

Mitglied: J3nny1981

J3nny1981 (Level 1) - Jetzt verbinden

07.03.2007, aktualisiert 12.03.2007, 8003 Aufrufe, 13 Kommentare

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
Mitglied: bastla
07.03.2007 um 15:53 Uhr
Hallo J3nny1981!

Auf die Schnelle hätte ich eine Batch-Lösung anzubieten:
01.
@echo off & setlocal 
02.
Set IPAdr= 
03.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Adresse"') do if not defined IPAdr set "IPAdr=%%i" 
04.
for /f "tokens=2 delims=. " %%i in ('nslookup %IPAdr%^|find "Name"') do set "CName=%%i"
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
Bitte warten ..
Mitglied: J3nny1981
07.03.2007 um 16:21 Uhr
ha misst, an nslookup hab ich ja ganricht gedacht.....

cool, danke.


könntest du mir jetzt noch verraten wie ich die obige patchdatei so ändern kann, dass er %CNAME% in eine C:\sysprep.inf datei in Zeil 28, Zeichen 6 schreibt?
Damit würdest du mir echt riesig helfen ^^

Danke,
Bitte warten ..
Mitglied: bastla
07.03.2007 um 16:28 Uhr
Hallo J3nny1981!

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 ein
01.
copy sysprep1.txt + sysprep2.txt + sysprep3.txt sysprep.inf
klappen (auf jeden Fall, wenn Du stattdessen ein VBScript einsetzt).

Grüße
bastla
Bitte warten ..
Mitglied: J3nny1981
07.03.2007 um 16:34 Uhr
japp,

ich danke dir vielmals....
das wird wohl so klappen.

Werds morgen testen, für hgeute ist feierabend.
Ich danke dir vielmals.
Bitte warten ..
Mitglied: J3nny1981
07.03.2007 um 16:43 Uhr
@bastla

ein problem hab ich dennoch.
wenn ich in der cmd eingebe:
nslookup 10.20.100.80
gibt er folgendes aus:
Server: inf.XXX.XXXX.de
Adresse: 194.X.X.X.X:53

Name: pc-2116.inf.XXX.XXXX.de
Adresse: 10.20.100.80



davon brauche ich ja nun den teil "pc-2116".

Mit deiner comandozeile
nslookup 10.20.100.80|find "Name"
sagt er nurnoch "pc-2116.inf.XXX.XXXX.de"

wie kann ich ihm nun sagen, dass er nur die ersten 5 Zeichen nehmen soll? Und per echo in die sysprerp2.inf schreibt????
Bitte warten ..
Mitglied: bastla
07.03.2007 um 17:09 Uhr
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
01.
echo %CName:~0,5%>sysprep2.txt
nur die ersten 5 Zeichen davon in die Textdatei ausgeben.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.03.2007 um 17:59 Uhr
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:
01.
>for /f "tokens=2 delims=. " %i in ('nslookup 10.20.100.80^|find "Name"') do @echo %i
b) Im Batch:
01.
... 
02.
for /f "tokens=2 delims=. " %%i in ('nslookup 10.20.100.80^|find "Name"') do set "CName=%%i" 
03.
...
Dann sind immer die (gefühlten) 5 oder so Zeichen in der Variable %CName%.

Gruss
Biber
Bitte warten ..
Mitglied: bastla
07.03.2007 um 18:12 Uhr
@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.

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 Zeichen gleich mit dem "echo" auszugeben).

Grüße
bastla
Bitte warten ..
Mitglied: J3nny1981
12.03.2007 um 13:42 Uhr
Hallo,
ich nochmal

also uch habe nun mehrer stunden/tage rumprobiert, und es will irgendwie nicht
01.
######### 
02.
for /f "tokens=2 delims=. " %i in ('nslookup 10.20.100.80^|find "Name"') do set "CName=%i" 
03.
######### 

der obige code funktioniert in der cmd einwadfrei.

Wenn ich das ganze nun variabel und für alle rechner in dem unterem code in eine batch, schreiben will. Funktionierts nicht. die cmd bleibt einfach nur schwarz und legt keine txt an.
Ich denke es liegt daran, dass er die ip-adresse nicht findet. ODER?

01.
###################### 
02.
@echo off & setlocal 
03.
Set IPAdr= 
04.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Adresse"') do if not defined IPAdr set "IPAdr=%%i" 
05.
for /f "tokens=2 delims=. " %%i in ('nslookup %IPAdr%^|find "Name"') do echo %%i>sysprep.inf 
06.
######################
Bitte warten ..
Mitglied: bastla
12.03.2007 um 15:37 Uhr
Hallo J3nny1981!

Um feststellen zu können, wo's denn nun klemmt, lass zunächst einfach einmal das "@echo off" weg ...

Grüße
bastla
Bitte warten ..
Mitglied: J3nny1981
12.03.2007 um 15:58 Uhr
ohne echo Off hängt er eben beim dns lookup.

for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP Adress"') do echo %%i>test.txt

wenn ich das probiere, dann habe ich auch nicht die IP-Adresse in der test.txt
wenn ich allerdings:

for /f "tokens=2 delims=. " %%i in ('nslookup %IPAdr%^|find "Name"') do echo %%i>sysprep.inf

ausprobiere mit einer IP anstelle des %IPAdr%, dann schreibt er mir den namen in die txt.Auch richtig.

MEin ipconfig sieht so aus:

Windows IP Configuration



Host Name . . . . . . . . . . . . : PC-2106

Primary Dns Suffix . . . . . . . :

Node Type . . . . . . . . . . . . : Unknown

IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

DNS Suffix Search List. . . . . . : inf.xxxxx.de



Ethernet adapter FB02-LAN:



Connection-specific DNS Suffix . : inf.xxx.de

Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)

Physical Address. . . . . . . . . : 00-0A-5E-06-2B-7C

Dhcp Enabled. . . . . . . . . . . : Yes

Autoconfiguration Enabled . . . . : Yes

IP Address. . . . . . . . . . . . : 10.20.100.70

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 10.20.100.1

DHCP Server . . . . . . . . . . . : 10.20.100.2

DNS Servers . . . . . . . . . . . : 194.95.66.9

Lease Obtained. . . . . . . . . . : Montag, 12. März 2007 15:55:55

Lease Expires . . . . . . . . . . : Montag, 12. März 2007 16:00:55
Bitte warten ..
Mitglied: Biber
12.03.2007 um 16:17 Uhr
..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:
01.
... 
02.
Set "IPAdr=" 
03.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP Address"') do set "IPAdr=%%i" 
04.
If [%IPAdr%]==[] for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Adresse"') do set IPAdr=%%i 
05.
Echo %IPAdr% 
06.
REM oder: Echo %IPADr%>test.txt 
07.
...
Gruss
Biber
Bitte warten ..
Mitglied: J3nny1981
12.03.2007 um 16:25 Uhr
ja ok das mit dem doppel "d" war nur hier. weil ichs auf die schneller geschrieben habe.

ich habs nun mit dem code hier:


@echo off & setlocal
Set IPAdr=
for /f "tokens=15" %%i in ('ipconfig/all^|findstr "IP Adress"') do if not defined IPAdr set "IPAdr=%%i"
for /f "tokens=2 delims=. " %%i in ('nslookup %IPAdr%^|find "Name"') do echo %%i>sysprep.inf


damit hats nun geklappt....
nun muss ich den kram dann nur noch zusammen kopieren, aber das hattest du mir ja weiter oben schon erklärt.

Danke dir.

ciao
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VB-Script in VB-Script starten und Parameter übergeben
gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

Batch & Shell
Probleme bei der Ausführung eines VB-Scriptes
Frage von AuricGoldfingerBatch & Shell1 Kommentar

Hallo zusammen, ich habe folgendes Script geschrieben: Leider bekomme ich bei der Ausführung den Fehler Was mache ich falsch?? ...

Windows Server
Drucker entfernen in VB-Script
gelöst Frage von NilsvLehnWindows Server2 Kommentare

Hallo ich habe eine kleine Frage bzgl. unseres Anmeldeskriptes. Ich habe ein IT-netzwerk an einer Uni übernommen. Ich arbeite ...

Entwicklung
VB Script Drucker hinzufügen
Frage von Marcel1989Entwicklung3 Kommentare

Funktionsweise sollte definitiv sein das mit einem Script sich 2 verschiedene Betriebssysteme ein und denselben Drucker holen. Mein Script ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 3 StundenWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 10 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 11 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server23 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Exchange Server
Exchange empfängt Emails - Kann aber keine Senden
gelöst Frage von niklasschaeferExchange Server11 Kommentare

Hallo, ich stehe gerade bei mir zuhause vor folgender Problemstellung. Gegeben sind 2x Hyper-V Host mit Windows Server 2016 ...