KSM 8 Posted November 10, 2023 Posted November 10, 2023 I'm running Windows Server 2016, All Servers in domain obtain IP address automatically and DNS addresses are set manual: Primary DNS 172.16.0.1 Secondary DNS 172.16.0.2 I create a 3rd DC (172.16.0.3) and promote it as Primary DC (Move all FSMO roles successfully). I want to change the primary DNS on all servers (about 50) to the new PDC 172.16.0.3 So I create a batch file with the following script: @echo off set dnsserver=172.16.0.3 set dnsserver2=172.16.0.1 for /f "tokens=1,2,3*" %%i in ('netsh interface show interface') do ( if %%i EQU Enabled ( rem echo change "%%l" : %dnsserver% netsh interface ipv4 set dnsserver name="%%l" static %dnsserver% both netsh interface ipv4 add dnsserver name="%%l" %dnsserver2% index=2 ) ) Then I create a GPO and link it to my domain. Computer configuration | Policies | Windows Settings | Scripts | (Startup\Shutdown) | Choose Startup In Scripts Properties I added the batch file. In Security Filtering for this Group Policy I keep the Authenticated Users, add Domain Admins Group and some servers to test it. I logon to these servers run gpupdate /force but with no luck, GP is not applying the script. Please I need your help with this matter, just I want to change the DNS IPs on all servers with no restart or logon. Note: Script is correct, I run it manual as admin and it change the DNS IPS. Quote
NIM Posted January 1 Posted January 1 We're using this script and it's working great for our environment (Win Servers 2016,2019,2022) Replace DNS addresses and remove the wins server if you're not using it. @echo off set com= set dnsserver=15.X.X.X set dnsserver2=15.X.X.X set winsserver=15.X.X.X setlocal enableDelayedExpansion for /f "tokens=1,2,3*" %%i in ('netsh interface show interface') do ( if %%i EQU Enabled ( set com=F if %%l EQU NAS1 (set com=T) if %%l EQU NAS2 (set com=T) if !com! EQU F (netsh interface ipv4 set dnsserver name="%%l" static %dnsserver% both) if !com! EQU F (netsh interface ipv4 add dnsserver name="%%l" %dnsserver2% index=2) if !com! EQU F (netsh interface ipv4 set winsserver name="%%l" static %winsserver%) ) ) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.