Stopping Windows from updating dynamic DNS


Under certain conditions there are times when you have a machine in your domain that you don’t want to update its DNS A records. These are usually edge cases however the need is still there. I needed to do this recently, so as they say on Law and Order in a robotic Stephen Hawking voice - “These are their stories”

dns_2 In my situation i had an issue with a server that was accessible internally and externally and was hosting an SSL website – with two different IPs, certificates, addresses and so on. This meant that i needed to have the machine accessible from an internal hostname address (this was not an option for me) as well as hosted on an external domain name.

This in turn meant that i needed it to sit on two different IP’s and only one of these should show up in DNS as its home (“… No multi-homing for you! …”), and becoming overly frustrated at the hourly DNS update that put my both machines IPs in DNS i set out to overcome this issue.

Operating systems affected

By default, the TCP/IP stack in NT 5.0 onwards attempts to register it's Host (A) record with it's DNS server.

Operating systems that this should be affective for:

  • Windows Server 2000
  • Windows Server 2003
  • Windows Server 2008
  • Windows XP
  • Windows Vista
  • Windows 7

Steps to complete

To make a machine stop attempting to publish their DNS names/addresses to their DNS server perform the following:

  1. Log on to the server/client machine as Administrator
  2. Start the registry editor (regedit.exe)
  3. Browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  4. From the Edit menu select New - DWORD value
  5. Enter a name of DisableDynamicUpdate and press Enter
  6. Double click on the new value and set to 1. Click OK

If there are multiple adapters in the machine you may not want to disable for all so instead of setting HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableDynamicUpdate to 1, set as 0 and then move to the sub key Interfaces\<interface name> and create the DisableDynamicUpdate value there and set to 1.