A single-label DNS zone name is one without a period (.). It is also called a top-level domain zone.
Starting with Windows 2000 SP4, Windows does not dynamically register DNS records in a single-label domain.
Windows XP, Windows Server 2003, and Windows 2000 SP4 and later do not send updates to top-level domains.
I have scripted SLDNS.bat to change this behavior.
NOTE: See How do I use Group Policy to Update Top Level Domain Zones?
The syntax for using SLDNS.bat is:
SLDNS \[Y\]
Where Y is an optional parameter that restarts a modified computer so the change can take effect.
NOTE: I recommend that you run the SLDNS.bat script from a Windows XP client or from Windows Server 2003. If you run from any other client, you will need to replace the Shutdown command with the equivalent PsShutdown command.
NOTE: If NETDOM.EXE and REG.EXE are NOT installed on the computer you will use to run SLDNS.bat, install them from the Support / Tools folder of your O/S CD-ROM.
NOTE: SLDNS.bat writes an error log as SLDNS.LOG in the current folder.
SLDNS.bat contains:
@echo off setlocal set SD=N if /i \{%1\}==\{Y\} set SD=Y set netdm=netdom query /domain:%userdnsdomain% if exist SLDNS.LOG del /q SLDNS.LOG call :getcomp>nul 2>&1 if "%SD%" EQU "Y" shutdown -r -f -t 121 -c "Close all applications. Your computer will restart is 2 minutes" if not exist SLDNS.LOG endlocal&exit /b 0 @echo Unable to determine the version of the following computer names at this time: type SLDNS.LOG endlocal exit /b 0 :getcomp for /f "Skip=1 Tokens=*" %%c in ('%netdm% server^|find /v /i "The command completed successfully."') do ( call :gotcomp %%c ) for /f "Skip=1 Tokens=*" %%c in ('%netdm% workstation^|find /v /i "The command completed successfully."') do ( call :gotcomp %%c ) :: Wait Three minutes before processing the first domain controller if "%SD%" EQU "Y" ping -n 181 127.0.0.1>nul for /f "Skip=1 Tokens=*" %%c in ('%netdm% dc^|find /v /i "The command completed successfully."') do ( call :wait call :gotcomp %%c ) goto :EOF :wait :: Wait three minutes before processing the next domain controller if "%SD%" EQU "Y" ping -n 181 127.0.0.1>nul goto :EOF :gotcomp set cmp=%1 set cv=N/A for /f "Tokens=2*" %%r in ('reg query "\\%cmp%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion^|find "REG_SZ"') do set cv=%%s set cv=%cv:~0,3% set sp=N/A for /f "Tokens=2*" %%r in ('reg query "\\%cmp%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion^|find "REG_SZ"') do set sp=%%s set sp=%sp:,= % set sp=%sp:~0,14% if "%cv%" EQU "N/A" @echo %cmp% %cv% %sp%>>SLDNS.LOG&goto :EOF if "%cv%" LSS "5.0" goto :EOF if "%cv%" EQU "5.0" if "%sp%" EQU "N/A" goto :EOF if "%cv%" EQU "5.0" if "%sp%" LSS "Service Pack 4" goto :EOF reg ADD "\\%cmp%\HKLM\System\CurrentControlSet\Services\Netlogon\Parameters" /v AllowSingleLabelDnsDomain /t REG_DWORD /d 00000001 /f if "%cv%" GTR "5.1" goto ws2003p reg ADD "\\%cmp%\HKLM\System\CurrentControlSet\Services\DnsCache\Parameters" /v UpdateTopLevelDomainZones /t REG_DWORD /d 00000001 /f goto :shut :ws2003p reg ADD "\\%cmp%\HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v UpdateTopLevelDomainZones /t REG_DWORD /d 00000001 /f :shut if "%SD%" EQU "N" goto :EOF if /i "%COMPUTERNAME%" EQU "%cmp%" goto :EOF shutdown -r -f -m \\%cmp% -t 61 -c "Close all applications. Your computer will restart is 60 seconds"