Standardgateway bei Clients mit statischer IP Adresse ändern
Hallo miteinander,
Wie kann ich über eine GPO die Standardgateway an meinen Clients ändern?
Ich habe das versucht?:
Es wird dann auch die Gateway überschrieben, aber auch die IP und das Subnet geändert, das soll aber bleiben, ich möchte lediglich, dass meine clients eine neue Standardgateway erhalten.
lg
Thomas
Wie kann ich über eine GPO die Standardgateway an meinen Clients ändern?
Ich habe das versucht?:
netsh int ip set address name="Ethernet" gateway=192.168.20.40 gwmetric=1
Es wird dann auch die Gateway überschrieben, aber auch die IP und das Subnet geändert, das soll aber bleiben, ich möchte lediglich, dass meine clients eine neue Standardgateway erhalten.
lg
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 463382
Url: https://administrator.de/contentid/463382
Ausgedruckt am: 02.11.2024 um 20:11 Uhr
19 Kommentare
Neuester Kommentar
Hallo,
Gruß,
Peter
Zitat von @sammy65:
Es wird dann auch die Gateway überschrieben, aber auch die IP und das Subnet geändert, das soll aber bleiben,
Schon mal versucht die IP auch gleichzeitg zu setzen? Habt ihr 2 verschieden Netze aber nur ein Gateway im anderen (nicht IP Netz der Clients)?Es wird dann auch die Gateway überschrieben, aber auch die IP und das Subnet geändert, das soll aber bleiben,
Gruß,
Peter
Moin,
ohne konkrete Befehle im Gepäck zu haben. Würde mir als "Workaround" folgendes einfallen:
Alternative 2:
Nimm die Powershell:
Zeile 4 und 5 dann auf den ALIAS (="Ethernet") anpassen!?
Gruß
em-pie
ohne konkrete Befehle im Gepäck zu haben. Würde mir als "Workaround" folgendes einfallen:
- per Script Subnetmask und IP-Adresse ermitteln
- im Weiteren Script verlauf dann Gateway, die IP-Adresse und Subnetzmaske neu setzen. Die letzteren beiden aus der zuvor ermittelten Abfrage.
Alternative 2:
Nimm die Powershell:
QUELLE für nachfolgendes: https://www.virtualizationhowto.com/2016/09/change-default-gateway-powershell/
#variables
$ipaddress='1.2.3.4'
$index = get-netipaddress | where-object {$_.IPAddress -eq $ipaddress} | select -ExpandProperty InterfaceIndex
$Log = 'c:\windows\options\gateway\gatewaychange.log'
$gateway = get-netroute -DestinationPrefix '0.0.0.0/0' | select -ExpandProperty NextHop
$oldroute = '1.1.1.1'
$newroute = '2.2.2.2'
$destination = '0.0.0.0/0'
#Start Changing the Gateway if needed
Function Swap-Gateway() {
remove-netroute -interfaceindex $index -NextHop $oldroute -confirm:$false
new-netroute -interfaceindex $index -NextHop $newroute -destinationprefix $destination -confirm:$false
sleep 3
}
if ($gateway -eq $oldroute) {
Write-Warning -Message "Gateway is set to $gateway and will be changed to $newroute"
Swap-Gateway | Out-file $Log -Append
}
elseif ($gateway -eq $newroute) {
Write-Warning -Message "Gateway is already set to $newroute and needs no change"
}
Zeile 4 und 5 dann auf den ALIAS (="Ethernet") anpassen!?
Gruß
em-pie
Hallo,
wenn es auf allen Client nur eine einzige Netzwerkverbindung / -Adapter gibt, reicht das hier:
Wenn's evtl. mehrere Netzwerkverbindungen / -Adapter gibt, aber immer 'Ethernet' genommen werden soll:
wenn es auf allen Client nur eine einzige Netzwerkverbindung / -Adapter gibt, reicht das hier:
$NewGW = '192.168.120.1' # Hier Dein neues Standardgateway eintragen
$DestPrefix = '0.0.0.0/0'
$ifindex = Get-NetIPConfiguration | Select -ExpandProperty Interfaceindex
Remove-NetRoute -InterfaceIndex $ifindex -confirm:$false
New-NetRoute -InterfaceIndex $ifindex -NextHop $NewGW -DestinationPrefix $DestPrefix
Get-NetipConfiguration # Config ausgeben
Wenn's evtl. mehrere Netzwerkverbindungen / -Adapter gibt, aber immer 'Ethernet' genommen werden soll:
$NewGW = '192.168.120.1'
$IFAlias = 'Ethernet'
$DestPrefix = '0.0.0.0/0'
$ifindex = Get-NetIPConfiguration | Where-Object {$_.InterfaceAlias -eq $IFAlias} | Select -ExpandProperty Interfaceindex
Remove-NetRoute -InterfaceIndex $ifindex -confirm:$false
New-NetRoute -InterfaceIndex $ifindex -NextHop $NewGW -DestinationPrefix $DestPrefix
Get-NetipConfiguration
Hallo,
bekommen die Clients ihre IP Adresse über einen DHCP Server oder wer vergibt hier die IPs?
Wenn die Clients über den DHCP Server ihre IP bekommen, dann wird dort auch in der Regel das Gateway mitgegeben. Dort kannst du ein neues GW definieren.
Auch wenn das nicht deine Frage war, kann es ja sein das du dir hiermit einfach Arbeit sparst.
VG
bekommen die Clients ihre IP Adresse über einen DHCP Server oder wer vergibt hier die IPs?
Wenn die Clients über den DHCP Server ihre IP bekommen, dann wird dort auch in der Regel das Gateway mitgegeben. Dort kannst du ein neues GW definieren.
Auch wenn das nicht deine Frage war, kann es ja sein das du dir hiermit einfach Arbeit sparst.
VG
Servus,
Alternativ geht auch folgendes was auch unter älteren OS funktioniert
Grüße Uwe
Meine neue Gateway Adresse ist die 192.168.20.40
die alte 192.168.20.9
ein Einzeiler reicht dir für den Krams :die alte 192.168.20.9
Get-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.20.9 -EA SilentlyContinue | Remove-NetRoute -Confirm:$false -PassThru | New-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.20.40
gwmi win32_NetworkadapterConfiguration | ?{$_.DefaultIPGateway -eq '192.168.20.9'} | %{$_.SetGateways('192.168.20.40')}
Manchmal frage ich mich wozu die Leute da so ein rundes Ding auf dem Hals haben. Heute beim Frühstück vergessen?
1. Wir leben im 21 Jahrhundert und da muss man Powershell-Skripte nicht mehr umständlich über eine Batch starten, dafür gibt es unter Computerkonfiguration->Windows-Einstellungen->Skripte (Starten/Herunterfahren) eine entsprechende Sektion nur für Powershell-Skripte. Und hier muss man auch nicht die Policy auf Bypass stellen, denn per Policy zugewiesene Skripte laufen immer im Bypass!
2. Sollte dir klar sein das eine Default-Route erst verfügbar wird sobald das Netzwerk auch online ist, ist der Rechner sehr schnell und das Startskript schon vor dem Netzwerk dran ist logisch das das erste CMDLet keine entsprechende Route findet, ergo es geschieht auch nichts, logisch! Dafür gibt es dann entweder die Richtlinie das auf den Netzwerkstack gewartet werden soll, oder man baut sich eine While-Schleife ins Skript ein welche auf das Netzwerk selbst wartet.
3. Muss natürlich sichergestellt sein das der Computeraccount auch Zugriffsrechte auf den Pfad und die Freigabe besitzt.
4. Hätte man sich das ganze auch mit einem Start-Transcript im Skript mal in eine Datei ausgeben lassen können, aber die Arbeit lassen wir mal dem Forum, ne ...
1. Wir leben im 21 Jahrhundert und da muss man Powershell-Skripte nicht mehr umständlich über eine Batch starten, dafür gibt es unter Computerkonfiguration->Windows-Einstellungen->Skripte (Starten/Herunterfahren) eine entsprechende Sektion nur für Powershell-Skripte. Und hier muss man auch nicht die Policy auf Bypass stellen, denn per Policy zugewiesene Skripte laufen immer im Bypass!
2. Sollte dir klar sein das eine Default-Route erst verfügbar wird sobald das Netzwerk auch online ist, ist der Rechner sehr schnell und das Startskript schon vor dem Netzwerk dran ist logisch das das erste CMDLet keine entsprechende Route findet, ergo es geschieht auch nichts, logisch! Dafür gibt es dann entweder die Richtlinie das auf den Netzwerkstack gewartet werden soll, oder man baut sich eine While-Schleife ins Skript ein welche auf das Netzwerk selbst wartet.
3. Muss natürlich sichergestellt sein das der Computeraccount auch Zugriffsrechte auf den Pfad und die Freigabe besitzt.
4. Hätte man sich das ganze auch mit einem Start-Transcript im Skript mal in eine Datei ausgeben lassen können, aber die Arbeit lassen wir mal dem Forum, ne ...
Klappt hier testweise einwandfrei. Und wie @em-pie schon gesagt hat, lesen hilft, dann siehst du auch schwarz auf weiß was bei dir schief läuft. Debuggen von Startskripten hat eigentlich nichts mit Powershell verstehen oder nicht zu tun. Man kann sich auch anstellen. Dazu lernen müssen wir alle, sich dumm stellen hilft da in den wenigsten Fällen.
Das Handwerkszeug hast du nun.
Viel Erfolg, i'm out.
Grüße Uwe
Das Handwerkszeug hast du nun.
Viel Erfolg, i'm out.
Grüße Uwe