Primären und sekundären DNS-Server auf mehreren Systemen per Skript ändern
Dieser Eintrag betrifft Windows Server 2008 und Windows Server 2012. Wenn in der Netzwerkumgebung der DNS-Server-Name, die Konfiguration, ein Eintrag, etc. geändert werden soll, ist es häufig viel Arbeit, auf allen zugehörigen Servern und Clients den neuen DNS-Server einzutragen. Um diese Arbeit auf wenige Klicks zu reduzieren, stelle ich im Folgenden ein PowerShell Skript vor, um auf allen nötigen Systemen einen neuen DNS-Server einzutragen.
$servers = "sever1","server2",“client1“ foreach($server in $servers) { Write-Host "Connect to $server..." $nics = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $server -ErrorAction Inquire | Where{$_.IPEnabled -eq "TRUE"} $newDNS = "192.168.50.1","192.168.50.2" foreach($nic in $nics) { Write-Host "`tExisting DNS Servers " $nic.DNSServerSearchOrder $x = $nic.SetDNSServerSearchOrder($newDNS) if($x.ReturnValue -eq 0) { Write-Host "`tSuccessfully changed DNS Servers on " $server } else { Write-Host "`tFailed to change DNS Servers on "$server } } }
*Anmerkung, aus Gründen der Lesbarkeit sind vor -Computer... und -ErrorAction... Zeilenumbrüche, diese gehören allerdings nicht ins Skript.
Hier müssen jetzt nur noch die Server unter „$servers“ eingetragen werden, bei denen eine DNS Server Änderung erfolgen soll (Anmerkung: die Anführungszeichen gehören zum Skript und müssen erhalten bleiben). Unter „$newDNS“ wird die Adresse des Neuen DNS-Servers eingetragen, die zweite Adresse steht dabei für den Alternativen DNS-Server. Falls dieser nicht benötigt wird, kann die zweite Adresse weggelassen werden.
Powershell Skripte werden als „.ps1“ Dateien gespeichert.
Das Skript kann von einem Domainadministrator gestartet werden. Ob dies auf dem Domaincontroller oder einem anderen Server gestartet wird, ist dabei nicht von Bedeutung.
Um das Skript starten zu können, muss in der PowerShell zunächst die Execution Policy geändert werden. Das passiert durch folgenden Befehl:
Set-ExecutionPolicy unrestricted
Die Änderung muss mit „y“ bestätigt werden.
Im Normalfall verhindert die Restriktion, dass Skripte von unbekannter Herkunft ausgeführt werden.
Nachdem die Restriktion aufgehoben ist, kann das Skript mit
.\DNSskript.ps1
aufgerufen werden.
Nach dem Ausführen bekommt man die Rückmeldung, dass der DNS-Server erfolgreich geändert wurde, bzw. meldet falls die Änderung nicht erfolgt ist.
Wenn die Änderungen abgeschlossen sind, sollte die Execution Policy wieder auf restricted gesetzt werden.
Set-ExecutionPolicy restricted
- ASP.NET 1
- Active Directory 41
- Administration Tools 1
- Allgemein 60
- Backup 4
- ChatBots 5
- Configuration Manager 3
- DNS 1
- Data Protection Manager 1
- Deployment 24
- Endpoint Protection 1
- Exchange Server 62
- Gruppenrichtlinien 4
- Hyper-V 18
- Intune 1
- Konferenz 1
- Künstliche Intelligenz 7
- Linux 3
- Microsoft Office 11
- Microsoft Teams 1
- Office 365 11
- Office Web App Server 1
- Powershell 21
- Remote Desktop Server 1
- Remote Server 1
- SQL Server 8
- Sharepoint Server 12
- Sicherheit 1
- System Center 10
- Training 1
- Verschlüsselung 2
- Virtual Machine Manager 1
- Visual Studio 1
- WSUS 7
- Windows 10 12
- Windows 8 9
- Windows Azure 4
- Windows Client 1
- Windows Server 24
- Windows Server 2012 7
- Windows Server 2012R2 15
- Windows Server 2016 7
- Windows Server 2019 2
- Windows Server 2022 1
- Zertifikate 4