84075
Goto Top

DNS Abfrage per Skript

Hallo,

ich habe eine Frage. Wie kann ich am schnellsten (ohne das ich mich als Admin einloggen muss) per Skript - die eingetragenen DNS Server abfragen und wenn nötig ändern?

Content-Key: 137115

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

Printed on: April 23, 2024 at 23:04 o'clock

Member: Tommy70
Tommy70 Mar 01, 2010 at 12:00:11 (UTC)
Goto Top
Hallo,

ohne Adminrechte wird das mit dem ändern nichts werden. Sonst könnte es ja jeder machen.
Member: Snowman25
Snowman25 Mar 01, 2010 at 12:09:17 (UTC)
Goto Top
Aber das anzegien funktioniert wunderbar.
Entweder über nslookup oder mit ipconfig /all
Mitglied: 84075
84075 Mar 01, 2010 at 12:13:59 (UTC)
Goto Top
Also Adminrechte für alle Rechner bestehen. Sowie auch Domänen-Admin Rechte. Ich möchte einfach ein Skript haben das mir auf allen Clients die dns einträge checkt und wenn die nicht so sein sollen wie ich es vorgegeben habe, dies geändert wird...Hat jemand ne Info für mich oder ein bat Skript?

In der Registry stehen die DNS Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{2D4DCC54-59EA-4588-A382-2084F8328294} ... Brauch jetzt ein Skript das mir diese registry einträge per skript ändert?!?!? Bin kein batch Guruface-smile
Mitglied: 84075
84075 Mar 01, 2010 at 12:22:42 (UTC)
Goto Top
geht es damit???

m regfind \\computername -p HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\parameters "old DNS value"-r "new DNS value(s)"
Member: Tommy70
Tommy70 Mar 01, 2010 at 12:25:13 (UTC)
Goto Top
Wenn du die Adminrechte hast dann könnte dir netsh weiterhelfen.
Member: Snowman25
Snowman25 Mar 01, 2010 at 12:27:09 (UTC)
Goto Top
m?
regfind?
woher hast du diese abstrusen Pseudobefehle?
Wenn du einen Domänen-Admin hast, dann setzt die DNS-Server doch per Richtlinie
Mitglied: 84075
84075 Mar 01, 2010 at 12:29:50 (UTC)
Goto Top
Mitglied: 60730
60730 Mar 01, 2010 at 12:30:58 (UTC)
Goto Top
Moin,
Zitat von @84075:
In der Registry stehen die DNS Einträge unter
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{2D4DCC54-59EA-4588-A382-2084F8328294} ...

nö - du mußt erstmal den Unterschied von Current Control und Controlsetxyz lernen.
Brauch jetzt ein Skript das mir diese registry einträge per skript ändert?!?!?

Bin kein batch Guruface-smile

Und suchen und finden funktioniert bei dir auch anders, als bei den meisten?
Montags immer wieder die gleichen Probleme mit Arbeitsbeschaffern, die Ihre internen Testsysteme bei administrator.de outgesoursct haben ;-(
Mitglied: 84075
84075 Mar 01, 2010 at 13:00:41 (UTC)
Goto Top
mach das nun so:
@ECHO OFF

:0
CLS
ECHO Bitte waehlen
ECHO 1: Statisch
ECHO 2: Dynamisch
ECHO 3: Abbrechen

SET choice=
SET /p choice=

IF '%choice%' == '1' GOTO 1  
IF '%choice%' == '2' GOTO 2  
IF '%choice%' == '3' GOTO 3  

ECHO Falsche Eingabe. Bitte erneut versuchen
GOTO :0

:1
ECHO Setzte Netzwerkeinstellungen auf statisch

netsh interface ip set address "Local Area Connection" static 192.168.0.51 255.255.255.0 192.168.0.1 1  
netsh interface ip set dns name="Local Area Connection" static 62.159.208.235  
netsh interface ip add dns name="Local Area Connection" 194.25.2.129  
GOTO 3

:2
ECHO Setzte Netzwerkeinstellungen auf dynamisch

netsh interface ip set address "Local Area Connection" dhcp  
netsh interface ip set dns name="Local Area Connection" dhcp  
GOTO 3

:3
ECHO Vorgang abgeschlossen
Member: Snowman25
Snowman25 Mar 01, 2010 at 13:06:33 (UTC)
Goto Top
Zeile 17 und Zeile 33 kannst du rauswerfen. Sind unnütz.
Deome netsh-Befehle sind sehr unregelmäßg, einmal mit Gleichheitszeichen, dann wieder ohne. was macht eigentlich der Benutzer eines deutschen Betriebssystems? der schaut mal wieder in die Röhre...
Überprüfe deine Syntax!
Mitglied: 84075
84075 Mar 01, 2010 at 13:22:39 (UTC)
Goto Top
Wenn ich nur den DNS ändern möchte kann ich ja per psexec das Kommando:

netsh interface ip add dns name="Local Area Connection" 194.25.2.129   

ausführen, oder??? SPRICH: Ich möchte den o.g. Befehl auf allen Rechnern ausführen die in der HOSTS.TXT stehen
Mitglied: 84075
84075 Mar 01, 2010 at 13:37:54 (UTC)
Goto Top
was sagst du dazu??? Problem ist nur das er zwar alle IP´s in der vuln.txt abfrägt ich aber nicht weiss welcher Host welche DNS benutzt....es werden lediglich die verschiedenen hosts angezeigt:

@echo off
del x.txt
for /f %%i in (vuln.txt) do call :sub1 %%i
goto :EOF

:sub1
set name=unbekannt
set ip=
nslookup %1 > nslookup.txt
for /f "tokens=1,2" %%j in (nslookup.txt) do if "%%j"=="Name:" set name=%%k  
echo %1 %name% >> x.txt
goto :EOF
Mitglied: 84075
84075 Mar 01, 2010 at 13:44:00 (UTC)
Goto Top
Zitat von @84075:
was sagst du dazu??? Problem ist nur das er zwar alle IP´s in der vuln.txt abfrägt ich aber nicht weiss welcher Host
welche DNS benutzt....es werden lediglich die verschiedenen hosts angezeigt:

> @echo off
> del x.txt
> for /f %%i in (vuln.txt) do call :sub1 %%i
> goto :EOF
> 
> :sub1
> set name=unbekannt
> set ip=
> nslookup %1 > nslookup.txt
> for /f "tokens=1,2" %%j in (nslookup.txt) do if "%%j"=="Name:" set name=%%k  
> echo %1 %name% >> x.txt
> goto :EOF
> 

Wenn ich versuche mehrere Hosts in die txt einzutragen dann frägt er nicht alle ab?!?! Es wird immer nur der erste host angezeigt alle anderen nicht
Member: Snowman25
Snowman25 Mar 01, 2010 at 13:44:02 (UTC)
Goto Top
Was befindet sich in x.txt?
Was befindet sich in vuln.txt?
Was befindet sich in nslookup.txt nach dem 1., 2., und 3., durchlauf??
Woher nimmst du %%k?
Wozu set ip=?

Ausserdem: Hatte ich je behauptet, mich mit netsh auszukennen? Mir ist bloß aufgefallen, dass die Syntax sehr unterschiedlich ist. Darum habe ich dich gebeten, das nochmal durchzuchecken.

Gruß
Snow
Member: Pjordorf
Pjordorf Mar 01, 2010 at 13:52:02 (UTC)
Goto Top
Hallo cyaency,

Zitat von @84075:
m regfind \\computername -p HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\parameters "old DNS value"-r
"new DNS value(s)"
Deine DNS Abfrage per Skript durchlesen tust du aber auch nicht, oder? Den Befehl "m regfind..." gibt es schlicht weg nicht in diesem zusammenhang. Da ist in der Übersetzung ins Deutsche ein Fehler drin. Lies dir mal das Original in Englisch durch.
Es muss also korrekt lauten regfind -m \\computer name -p HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\parameters "old DNS value" -r "new DNS value(s)"

Peter
Member: Snowman25
Snowman25 Mar 01, 2010 at 14:49:33 (UTC)
Goto Top
Ausserdem gibt es regfind unter XP nicht.
Noch dazu ist es usability-technischer schwachsinn von M$, dass man zum ändern des DNS-Servers die alte DNS-Serveradresse mitgeben muss. (überhaupt zum ändern von regkeys)
Was ist so schlimm daran, es per GPO zu regeln?