DNS Server ändern

  • Hallo zusammen

    ich bin auf der Suche nach folgendem Script bzw.. hilfestellung :)
    Bei uns wird sich demnächst der DNS Server ändern...jetzt haben wir keine Lust
    an allen Clients die eine fetse IP haben, von "hand" die Adresse zu ändern.

    Was ich bis jetzt herausgefunden habe, der DNS Eintarg wird in dem File "NameServer" gespeichert.
    Dieses File befindet sich an folgender Stelle:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\

    Dort existieren verschiedene Unterordner je nach dem welche Netzwerkkarte im Rechner verbaut ist.

    Stelle mir folgendes Script vor...Suche unter dem oben genntem Pfad nach nach dem value der sich im File
    "Name Server" befindet zum Beispiel 192.168.2.2

    Wenn er diese Zahl findet ersetze sie durch eine andere. Wenn er sie nicht findet...mache nix, denn dann hat der Rechner DHCP..

    Hört sich soweit simple an aber am programmieren hackt es leider :(

    Liebe Grüße

    Martin

  • Schau dir einmal den Windows Befehl "netsh" an mit dem kann man alle Netzwerkeinstellugen per cmd steuern.

    ----------------------------------------------------------------------------------------------------------------------
    Früher musste man Drachen töten und konnte die Jungfrau heiraten.
    Heute gibt es keine Jungfrauen mehr, man muss den Drachen heiraten!

  • Mhh wenn ich das richtig verstanden habe. Lässt sich damit zwar der DNS Server ändern.
    Aber der Eintrag soll ja nicht bei allen Rechner vorgenommen werden. Notebook user sollen
    zum Beispiel davon verschont bleiben.

    LG Martin

  • Hi,


    Zitat

    an allen Clients die eine fetse IP haben, von "hand" die Adresse zu ändern.


    Das wären dann wohl auch Notebooks..........


    1) Wenn Ihr die Notebooks nicht an Hand von Rechnernamen oder IP Adressen indentifizieren könnt, dann hast Du ein Problem.

    Keine Rechner- oder Inventarlisten vorhanden?

    2) Gffs. müsstet Ihr eine WMI Abfrage generieren....... ( Notebookhardware abfragen, oder wenn Festplatte kleiner 80 GB oder ähnliches )


    ;-))

    Stefan

  • Hi,

    hier schonmal ein Ansatz:

    [autoit]

    ; Script muss mit administrativen Rechten auf Client ausgeführt werden.
    ; Gffs. per Softwareverteilung SMS oder psexec
    Dim $aInterface [10]
    $newdns = "192.168.1.1" ; hier neuen DNS eintragen
    For $i= 1 to 10 ; Max 10 Interfaces
    $var = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $i)
    If @error <> 0 then ExitLoop
    $aInterface [$i] = $var
    Next
    For $i = 1 To UBound ($aInterface) - 1
    If $aInterface [$i] = "" Then ExitLoop
    If RegRead ("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $aInterface [$i], "NameServer") <> "" Then
    RegWrite ("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $aInterface [$i], "NameServer", "REG_SZ", $newdns)
    EndIf
    Next

    [/autoit]


    ;-))

    Stefan

  • Morgen!

    Gibt es eine Möglichkeit, dass beim Anmelden des Rechners das File "NameServer" abgefragt werden kann?

    Hintergrund: Bei uns wird beim anmelden der Rechner ein LOGON Script ausgeführt. Dieses wird LOKAL ausgeführt, nicht von einem Rechner auf die anderen zugegriffen. So kann man in dem LOGON Script Lokale Einstellungen abfragen und infividuell anpassen.

    Wenn das geht, dann kannst du doch "einfach" die Datei "NameServer" Zeilenweise einlesen und eine neue Datei schreiben in der dann ggf den Eintrag für den DNS Server geändert ist. Dann die alte Datei löschen oder umbennenn und die neu erstellte mit dem Namen "NameServer" verwenden.

    Weiß nicht ob das praktisch geht, aber vom Verständnis her eine Lösungsmöglichkeit.

    Gruß

    Steffen