
43683
16.02.2007, aktualisiert am 05.02.2015
Batch-Datei erstellen zur DNS-Abfrage
Die Antwort zur Frage findet ihr unten in den Kommentaren.
Bis dann ..
Bis dann ..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 51875
Url: https://administrator.de/forum/batch-datei-erstellen-zur-dns-abfrage-51875.html
Ausgedruckt am: 17.04.2025 um 17:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo urszula-admin und willkommen im Forum!
Falls sich Rafiki etwas kurz gefasst hat: Gemeint ist, im Startup-Script für alle Computer eine Batchzeile hinzuzufügen, die die gewünschte Info je Computer einzeln oder gesammelt am Server ablegt, also etwa:
um je Computer eine eigene Datei mit den Zeilen
Hostname, Primäres DNS-Suffix, DNS-Suffixliste, sowie je NIC: Verbindungsspezifisches DNS-Suffix
abzulegen. Willst Du alles in einer Datei gesammelt, könnte das so aussehen:
Wenn Du diese Batchzeilen für mehrere Tage im Startup-Script belässt, solltest Du für die meisten Computer die gewünschten Daten beisammen haben, bei der Variante 2 kommen dann allerdings die einzelnen Computer öfter in der Ergebnisdatei vor ...
Grüße
bastla
Falls sich Rafiki etwas kurz gefasst hat: Gemeint ist, im Startup-Script für alle Computer eine Batchzeile hinzuzufügen, die die gewünschte Info je Computer einzeln oder gesammelt am Server ablegt, also etwa:
for /f "delims=" %%i in ('ipconfig /all ^|findstr "Hostname DNS-Suffix"') do echo %%i> \\server\freigabe\%computername%.txt
Hostname, Primäres DNS-Suffix, DNS-Suffixliste, sowie je NIC: Verbindungsspezifisches DNS-Suffix
abzulegen. Willst Du alles in einer Datei gesammelt, könnte das so aussehen:
for /f "delims=" %%i in ('ipconfig /all ^|findstr "Hostname DNS-Suffix"') do echo %%i>>\\server\freigabe\dns-info.txt
echo --------------------------------------------------------------------- >>\\server\freigabe\dns-info.txt
Grüße
bastla
Hallo urszula-admin!
Nur zur Sicherheit: Das Script muss auf den Workstations ausgeführt werden, daher oben der Vorschlag, es dem Computer-Start-Script (oder alternativ dem Anmeldescript - dann Schreibrechte für die Zieldatei beachten) hinzuzufügen.
Wenn Du zentral alle 70 Computer abfragen möchtest, müsstest Du es zB mit PsExec versuchen ...
Grüße
bastla
Nur zur Sicherheit: Das Script muss auf den Workstations ausgeführt werden, daher oben der Vorschlag, es dem Computer-Start-Script (oder alternativ dem Anmeldescript - dann Schreibrechte für die Zieldatei beachten) hinzuzufügen.
Wenn Du zentral alle 70 Computer abfragen möchtest, müsstest Du es zB mit PsExec versuchen ...
Grüße
bastla
Hallo urszula-admin!
Auch wenn Du "PsExec" nicht verwenden willst, benötigst Du zunächst eine Liste der Computernamen (je Zeile ein Computername ohne "\\").
Auf Grundlage dieser Liste (zB "Rechner.txt") kannst Du folgende Batchdatei verwenden, um das unten stehende VB-Script (zu speichern unter "GetDNSInfo.vbs") auf alle Rechner anzuwenden:
Soferne in den Dateinamen/Pfaden keine Leerstellen enthalten sind, kannst Du die Anführungszeichen natürlich weg lassen (sind nur zur Vorsicht gesetzt, sollten aber nicht schaden).
GetDNSInfo.vbs:
Das Trennzeichen zwischen den einzelnen Informationen wird in der Zeile Delim = "_" festgelegt und kann natürlich geändert werden.
Das Script gibt die Informationen
Computername_Hostname_DNS-Server-Adressen_DNSDomain_DNSSuffix-Einträge
für jede Netzwerkkarte aus, wodurch für einen Rechner mehrere Einträge entstehen können. Mehrere DNS-Server-Adressen oder DNSSuffix-Einträge werden mit ";" getrennt ausgegeben.
Wenn eine Information nicht verfügbar ist, wird dies mit "NA" dokumentiert.
Grüße
bastla
Auch wenn Du "PsExec" nicht verwenden willst, benötigst Du zunächst eine Liste der Computernamen (je Zeile ein Computername ohne "\\").
Auf Grundlage dieser Liste (zB "Rechner.txt") kannst Du folgende Batchdatei verwenden, um das unten stehende VB-Script (zu speichern unter "GetDNSInfo.vbs") auf alle Rechner anzuwenden:
del rechner-mud-alle.txt
for /f "delims=" %%i in ('type "Rechner.txt"') do CScript //nologo "GetDNSInfo.vbs" "%%i" >> rechner-mud-alle.txt
GetDNSInfo.vbs:
If WScript.Arguments.Count < 1 Then
WScript.Echo "Kein Computername übergeben"
WScript.Quit(1)
End If
strComputer = WScript.Arguments(0)
Delim = "_"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objAdapter in colAdapters
Hostname = objAdapter.DNSHostName
If Hostname = "" Then Hostname = "Hostname-NA"
DNS = ""
If Not IsNull(objAdapter.DNSServerSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSServerSearchOrder)
If DNS = "" Then
DNS = objAdapter.DNSServerSearchOrder(i)
Else
DNS = DNS & ";" & objAdapter.DNSServerSearchOrder(i)
End If
Next
End If
If DNS = "" Then DNS = "DNS-NA"
If Not IsNull(objAdapter.DNSDomain) Then
DNSDomain = objAdapter.DNSDomain
Else
DNSDomain = "Domain-NA"
End IF
DNSSuffix = ""
If Not IsNull(objAdapter.DNSDomainSuffixSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSDomainSuffixSearchOrder)
If DNSSuffix = "" Then
DNSSuffix = objAdapter.DNSDomainSuffixSearchOrder(i)
Else
DNSSuffix = DNSSuffix & ";" & objAdapter.DNSDomainSuffixSearchOrder(i)
End If
Next
End If
If DNSSuffix = "" Then DNSSuffix = "Suffix-NA"
WScript.Echo strComputer & Delim & Hostname & Delim & DNS & Delim & DNSDomain & Delim & DNSSuffix
Next
Das Script gibt die Informationen
Computername_Hostname_DNS-Server-Adressen_DNSDomain_DNSSuffix-Einträge
für jede Netzwerkkarte aus, wodurch für einen Rechner mehrere Einträge entstehen können. Mehrere DNS-Server-Adressen oder DNSSuffix-Einträge werden mit ";" getrennt ausgegeben.
Wenn eine Information nicht verfügbar ist, wird dies mit "NA" dokumentiert.
Grüße
bastla