Festeingetragene DNS IPs an Clients ändern
Hallo zusammen,
wir haben einen DNS Server aussortiert und nun muss ich an ca 100 Clients die DNS IP des neuen Servers eintragen. (Validiertes Umfeld aus dem Grund ist alles fest vergeben)
Es gibt doch bestimmt eine Möglichkeit das Zentral zu steuern oder?
Man kann ja mittels:
netsh interface ip show config
die Konfiguration auslesen und dann mit:
netsh interface ip set dns "LAN-Verbindung" static 192.168.110.2
netsh interface ip add dns "LAN-Verbindung" 192.168.110.1 index=1
neu vergeben. Aber das problem ist doch das jede Verbindung anders heißt und ich somit ja dann doch an alle Clients ran müsste!?
wir haben einen DNS Server aussortiert und nun muss ich an ca 100 Clients die DNS IP des neuen Servers eintragen. (Validiertes Umfeld aus dem Grund ist alles fest vergeben)
Es gibt doch bestimmt eine Möglichkeit das Zentral zu steuern oder?
Man kann ja mittels:
netsh interface ip show config
die Konfiguration auslesen und dann mit:
netsh interface ip set dns "LAN-Verbindung" static 192.168.110.2
netsh interface ip add dns "LAN-Verbindung" 192.168.110.1 index=1
neu vergeben. Aber das problem ist doch das jede Verbindung anders heißt und ich somit ja dann doch an alle Clients ran müsste!?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 292248
Url: https://administrator.de/contentid/292248
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
39 Kommentare
Neuester Kommentar
wmic nicconfig where (IPEnabled=True) call SetDNSServerSearchOrder("192.168.110.1","192.168.110.2")
Folgende Methoden sind damit ebenfalls noch möglich:
Aufruf [ Ein-/Aus- ]Parameter&typ Status
==== ===================== ======
DisableIPSec (null)
EnableDHCP (null)
EnableDNS [IN ]DNSDomain(STRING) (null)
[IN ]DNSDomainSuffixSearchOrder(ARRAY OF STRING)
[IN ]DNSHostName(STRING)
[IN ]DNSServerSearchOrder(ARRAY OF STRING)
EnableIPFilterSec [IN ]IPFilterSecurityEnabled(BOOLEAN) (null)
EnableIPSec [IN ]IPSecPermitIPProtocols(ARRAY OF STRING) (null)
[IN ]IPSecPermitTCPPorts(ARRAY OF STRING)
[IN ]IPSecPermitUDPPorts(ARRAY OF STRING)
EnableStatic [IN ]IPAddress(ARRAY OF STRING) (null)
[IN ]SubnetMask(ARRAY OF STRING)
EnableWINS [IN ]DNSEnabledForWINSResolution(BOOLEAN) (null)
[IN ]WINSEnableLMHostsLookup(BOOLEAN)
[IN ]WINSHostLookupFile(STRING)
[IN ]WINSScopeID(STRING)
FlushDns (null)
ReleaseDHCPLease (null)
ReleaseDHCPLeaseAll (null)
RenewDHCPLease (null)
RenewDHCPLeaseAll (null)
SetArpAlwaysSourceRoute [IN ]ArpAlwaysSourceRoute(BOOLEAN) (null)
SetArpUseEtherSNAP [IN ]ArpUseEtherSNAP(BOOLEAN) (null)
SetDNSDomain [IN ]DNSDomain(STRING) (null)
SetDNSServerSearchOrder [IN ]DNSServerSearchOrder(ARRAY OF STRING) (null)
SetDNSSuffixSearchOrder [IN ]DNSDomainSuffixSearchOrder(ARRAY OF STRING) (null)
SetDatabasePath [IN ]DatabasePath(STRING) (null)
SetDeadGWDetect [IN ]DeadGWDetectEnabled(BOOLEAN) (null)
SetDefaultTOS [IN ]DefaultTOS(UINT8) (null)
SetDefaultTTL [IN ]DefaultTTL(UINT8) (null)
SetDynamicDNSRegistration[IN ]DomainDNSRegistrationEnabled(BOOLEAN) (null)
[IN ]FullDNSRegistrationEnabled(BOOLEAN)
SetForwardBufferMemory [IN ]ForwardBufferMemory(UINT32) (null)
SetGateways [IN ]DefaultIPGateway(ARRAY OF STRING) (null)
[IN ]GatewayCostMetric(ARRAY OF UINT16)
SetIGMPLevel [IN ]IGMPLevel(UINT8) (null)
SetIPConnectionMetric [IN ]IPConnectionMetric(UINT32) (null)
SetIPUseZeroBroadcast [IN ]IPUseZeroBroadcast(BOOLEAN) (null)
SetIPXFrameTypeNetworkPairs[IN ]IPXFrameType(ARRAY OF UINT32) (null)
[IN ]IPXNetworkNumber(ARRAY OF STRING)
SetIPXVirtualNetworkNumber[IN ]IPXVirtualNetNumber(STRING) (null)
SetKeepAliveInterval [IN ]KeepAliveInterval(UINT32) (null)
SetKeepAliveTime [IN ]KeepAliveTime(UINT32) (null)
SetMTU [IN ]MTU(UINT32) (null)
SetNumForwardPackets [IN ]NumForwardPackets(UINT32) (null)
SetPMTUBHDetect [IN ]PMTUBHDetectEnabled(BOOLEAN) (null)
SetPMTUDiscovery [IN ]PMTUDiscoveryEnabled(BOOLEAN) (null)
SetTcpMaxConnectRetransmissions[IN ]TcpMaxConnectRetransmissions(UINT32) (null)
SetTcpMaxDataRetransmissions[IN ]TcpMaxDataRetransmissions(UINT32) (null)
SetTcpNumConnections [IN ]TcpNumConnections(UINT32) (null)
SetTcpUseRFC1122UrgentPointer[IN ]TcpUseRFC1122UrgentPointer(BOOLEAN) (null)
SetTcpWindowSize [IN ]TcpWindowSize(UINT16) (null)
SetTcpipNetbios [IN ]TcpipNetbiosOptions(UINT32) (null)
SetWINSServer [IN ]WINSPrimaryServer(STRING) (null)
[IN ]WINSSecondaryServer(STRING)
nee, das war eigentlich für ein "Startskript" gedacht.
Geht aber mit WMIC auch per Remote wenn die Firewall der Clients mitspielt:
Per Powershell geht das ebenfalls mit Get-WMIObject per Remote oder Startskript
Geht aber mit WMIC auch per Remote wenn die Firewall der Clients mitspielt:
wmic /node:192.168.110.136 nicconfig where (IPEnabled=True) call SetDNSServerSearchOrder("192.168.110.1","192.168.110.2")
Nein das war im obigen Beispiel jetzt Plain DOS (WMIC)
Via Powershell geht das mit Get-WMIObject ...
Via Powershell geht das mit Get-WMIObject ...
ReturnValue = 91 bedeutet Access Denied also entweder keinen Admin benutzt der auf der Remote-Maschine lokale Admin-Rechte hat oder die Firewall des Clients blockt! So einfach ist das ....
Nachtrag: Mit Powershell gehts z.B. so remote :
Nachtrag: Mit Powershell gehts z.B. so remote :
gwmi win32_networkadapterconfiguration -Filter "IPEnabled=True" -ComputerName 192.168.110.136 | ?{$_.IPAddress -contains '192.168.110.136'} | %{$_.SetDNSServerSearchOrder("192.168.110.1","192.168.110.2")}
Och mönsch, schau dir doch mal die Kommandozeilenparameter zu wmic an wmic /?
Was findest du da, hmm ?! Genau ! Die Parameter ==> /USER und /Password
Sollte man eigentlich auch selber drauf kommen können
Was findest du da, hmm ?! Genau ! Die Parameter ==> /USER und /Password
Sollte man eigentlich auch selber drauf kommen können
Ja das war jetzt ein Tippfehler, mein Gott ... Herr "Server und Netzwerkspezialist ...."
Ich hab Geduld, aber wenn man wegen jedem Furz hier gleich Pipi machen muss, au weia das nervt. Jetzt Teste bei dir doch erst mal bevor du wegen jedem deiner Fehler gleich hier anpostest. Läuft hier ja einwandfrei.
Hi,
ich hatte vor Jahren auch schon mal so eine Problemstellung. Das Problem damals war, dass man sich nicht darauf verlassen konnte, dass auf allen PC WMI zur Verfügung steht oder funktioniert. Ich habe das deshalb direkt über die Registry gemacht.
Ich habe das Script leider nicht mehr zur Hand, aber im Kern etwa so:
Nicht "schick" aber erfolgreich.
E.
ich hatte vor Jahren auch schon mal so eine Problemstellung. Das Problem damals war, dass man sich nicht darauf verlassen konnte, dass auf allen PC WMI zur Verfügung steht oder funktioniert. Ich habe das deshalb direkt über die Registry gemacht.
Ich habe das Script leider nicht mehr zur Hand, aber im Kern etwa so:
- mit regedit den Schlüssel "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces" exportiert
- Export-Datei bearbeitet
- im Kern: nach Zeile gesucht, welche enthält: "NameServer"= enthält und nach dem "=" die IP des alten DNS-Server
- dort die IP-Adresse des DNS Servers ersetzt
- die bearbeitete Reg-Datei wieder importiert
- ggf. Computer neu starten lassen
Nicht "schick" aber erfolgreich.
E.
Hatte ich ja oben schon so gepostet ...
Festeingetragene DNS IPs an Clients ändern
Festeingetragene DNS IPs an Clients ändern
Zitat von @obliterator:
ja aber das hat ja nicht geklappt und du warst ja so bockig als ich Hilfe brauchte.
Du hast ja nicht nach dem PS Script gefragt, und doch das geht selbstverständlich so, ich poste keine Dinge die ich nicht teste. Wahrscheinlich hast du nicht mindestens PS 3.0 verwendet .ja aber das hat ja nicht geklappt und du warst ja so bockig als ich Hilfe brauchte.
P.s. Sehe deine Fehlermeldung im PS Skript erst gerade ... Hattest du nachgetragen und ich nicht gesehen, die besagt das die Firewall des Remote-Client dicht ist oder die Credentials nicht stimmen, deswegen konntest du auch nicht per Wmic zugreifen.
Zitat von @obliterator:
PS 3.0 benutze ich.
Naja bei mir funktionierte es nicht da der Zugriff ja verweigert wurde. Daraufhin hattest du geschrieben mit /User / Passwort kann ich die Parameter mitgeben. Aber das habe ich nicht hinbekommen.
Dann haben wir aneinander vorbei geredet, ich meinte damit das diese beiden Parameter bei Verwendung von WMIC zur Anwendung kommen und nicht bei der Powershellvariante. Da deine Powershellmeldung in deinem Kommentar erst mal nicht auftauchte.PS 3.0 benutze ich.
Naja bei mir funktionierte es nicht da der Zugriff ja verweigert wurde. Daraufhin hattest du geschrieben mit /User / Passwort kann ich die Parameter mitgeben. Aber das habe ich nicht hinbekommen.
Bei der Powershell-Variante ist es der Parameter -Credential
Zitat von @obliterator:
so? Es will nicht klappen
so? Es will nicht klappen
gwmi win32_networkadapterconfiguration -Credentials "Benutzer Passwort" -Filter "IPEnabled=True" -ComputerName 192.168.110.136 | ?{$_.IPAddress -contains '192.168.110.136'} | %{$_.SetDNSServerSearchOrder("192.168.110.1","192.168.110.2")}
Ist ja auch so auch nicht korrekt,
-Credential (get-Credential)
Uups Tipfehler Credential ohne s
Nimm dich einfach die ISE dann siehst du solche Fehler durch die Intellisense direkt, und tappst nicht immer im Dunkeln.
Es gibt auch Doku die man lesen kann
https://technet.microsoft.com/de-de/library/hh849824.aspx
Nimm dich einfach die ISE dann siehst du solche Fehler durch die Intellisense direkt, und tappst nicht immer im Dunkeln.
Es gibt auch Doku die man lesen kann
https://technet.microsoft.com/de-de/library/hh849824.aspx
Siehe oben, hätte ich schon geschrieben, in der Firewall des Remote-Systems ist die WMI-Remoteverwaltung nicht freigeschaltet.
Deaktiviere testweise die Firewall auf dem Zielclient und du wirst sehen das dies die Ursache ist .Deswegen geht auch Wmic bei dir nicht ...
Deaktiviere testweise die Firewall auf dem Zielclient und du wirst sehen das dies die Ursache ist .Deswegen geht auch Wmic bei dir nicht ...
Noch zur wichtigen Info: Wenn die Rechner nicht in einer Domäne sind muss man auf dem Zielclient in der Registry den LokalAccountTokenfilter aktivieren weil die UAC sonst den Zugriff blockt!
Siehe dazu auch
WIndows 8.1 CDollar Zugreifen
WIndows 8.1 CDollar Zugreifen
Zitat von @george44:
Hallo allerseits,
mal eine Frage zu meiner persönlichen Fortbildung:
wenn man wie hier wegen gesicherter Umgebung das Setzen der DNS-Daten nicht per DHCP lösen kann/will - ist denn dann einer Lösung per Powershell-Script nicht genauso problematisch???
Kommt drauf an was du und der TO überhaut unter "sicherer" Umgebung verstehen... Das ist ein sehr sehr dehnbarer Begriff.Hallo allerseits,
mal eine Frage zu meiner persönlichen Fortbildung:
wenn man wie hier wegen gesicherter Umgebung das Setzen der DNS-Daten nicht per DHCP lösen kann/will - ist denn dann einer Lösung per Powershell-Script nicht genauso problematisch???
Gruß jodel32
Kommt drauf an was du und der TO überhaut unter "sicherer" Umgebung verstehen... Das ist ein sehr sehr dehnbarer Begriff.
Ich vermute mal, es geht hierum.Zitat von @emeriks:
Hmm und dazu sind fest zugeordnete IPs unabdingbar ??? Hä ? Naja, die kann jeder Hempel manipulieren, ein gesicherter DHCP der per MAC zuweist wäre hier genau so "(un)sicher"... was ist heut schon sicher... die Netzwerkkarte kann genauso ihren Geist aufgeben dann war's das mit "sicher".Kommt drauf an was du und der TO überhaut unter "sicherer" Umgebung verstehen... Das ist ein sehr sehr dehnbarer Begriff.
Ich vermute mal, es geht hierum.Ohne klare Definition also unmöglich die Frage zu beantworten.
ein gesicherter DHCP der per MAC zuweist wäre hier genau so "(un)sicher"
Wir haben so was auch in den Krankenhäusern. Es gibt Geräte, welche im Netzwerk möglichst unabhängig funktionieren müssen. Also jede vermeidbare Störquelle vermeiden. Ein DHCP-Dienst kann ausfallen. Und ohne diesen nützt einem auch die Reservierung nichts. Es ist halt einfach ein vermeidbares Risiko.