Event 12 Time-Service and the PDC Emulator Role

After moving the PDC emulator FSMO (Felixible Single Operation Master) Role to a new Domain Controller, you will see the following event in your System event log:

Event ID: 12 Source: Time-Service

Time Provider NtpClient: This machine is configured to use the domain hierarchy to determine its time source, but it is the AD PDC emulator for the domain at the root of the forest, so there is no machine above it in the domain hierarchy to use as a time source. It is recommended that you either configure a reliable time service in the root domain, or manually configure the AD PDC to synchronize with an external time source. Otherwise, this machine will function as the authoritative time source in the domain hierarchy. If an external time source is not configured or used for this computer, you may choose to disable the NtpClient

Event ID: 12 Source: Time-Service

This is due to the fact that the new server hosting the PDC Emulator role is still set to sync time from another Domain Controller within your domain (i.e. through Domain Hierachy). The PDC emulator should be set to sync time with a highly reliable external time source, as it acts as the authoritative time source for your domain. This helps to ensure that time synchronisation between the servers and computers in your network is always accurate.

In order to resolve this event there are two steps. The first is to set the new PDC emulator to sync time with an external time source. The are many time (NTP) servers  available on the Internet. The NTP Pool Project is an excellent service which provides as accurate time service for all geographical areas.

You can use the w32tm command to set your new PDC emulator to sync with an external ntp server. On your new PDC Emulator run the following command:

w32tm /config /manualpeerlist:”time.windows.com,0x1 0.ntp.pool.org,0x1″ /syncfromflags:manual /reliable:yes /update

Notice that in the /manualpeerlist part of the command the time.windows.com and 0.ntp.pool.org servers have been specified. Please choose whichever external time source you prefer to use.

Restart the time service on the new PDC Emulator by running the following commands:

net stop w32time

net start w32time

The second step is to set the old PDC emulator back to syncing time through the domain hierachy. To do this you need to use the w32tm command again, but with different parameters. Run the following command on the server that used to act as your PDC Emulator:

w32tm /config /syncfromflags:domhier /reliable:no /update

Finally, restart the time service on the old PDC Emulator by running the following commands:

net stop w32time

net start w32time

You may find that some of your existing domain controllers show Event 129 Source: Time-Service in the logs after making this change. The specific error is:

NtpClient was unable to set a domain peer to use as a time source because of discovery error. NtpClient will try again in 15 minutes and double the reattempt interval thereafter. The error was: The entry is not found. (0x800706E1)

This is due to the fact the domain controllers are still trying to use the old PDC Emulator as their time source. You can quickly rectify this by running the command:

w32tm /resync /rediscover

If you want to verify the time source that a domain controller is using run the command:

w32tm /query /source

 

Event ID 5153 Source WAS after IIS install on a Windows Server 2008 DC

I ran into this issue today while installing WSUS components on a new branch office Windows Server 2008 Domain Controller. After installing the WSUS role I spotted a warning in the event log as follows:

Event 5153 Source WAS

This error occurs when you promote a Windows 2008 Server to become a domain controller in a domain that is lower than 2008 functional level, and the server is also running IIS. Fortunately, this is documented in Microsoft KB 946139 and the fix is simple.

Copy and past the text for the script given in the KB article into notepad and save the file as samupgrade.js. Then from the command line run:

cscript samupgrade.js

The output is shown below:

Sam Upgrade Task Output

Reboot the server and you’re done

Upgrading the adsl modem firmware on Cisco 877W router

In order to ensure compatibility and stability with your ISPs equipment in the exchange, it is at times necessary to upgrade the adsl modem firmware on your Cisco router. Download the appropriate firmware for your router (in this case a Cisco 877W). It is essential you get the correct version so take care to make sure you have the correct one. Some older updates can be found here:

ftp://ftp.cisco.com/pub/access/800/

You will need a Cisco Smartnet subscription to get the latest firmware.

Once you have downloaded the firmware (in this case adsl_alc_20190_4.0.018.bin), you need to rename the file to adsl_alc_20190.bin

Telnet into your router and check the current firmware version by running the command:

show dsl interface

From the output of the command you can see under the ‘Operation FW’ section it shows the current firmware file and version, and also that under the ‘FW Source’ it shows the location as embedded.

Next we need to copy the new firmware file to the flash memory on the router using tftp. You can use the Cisco tftp server software to do this. or alternatively download Solarwinds free tftp server software.

Place the firmware file you renamed earlier into the tftp servers root directory and then issue the following command on your router:

copy tftp flash 

fill in the ip address for your tftp server and the source and destination filename adsl_alc_20190.bin

issue the reload command to restart your router:

reload

Once your router is back up telnet into it again and run the following command again to see the result:

show dsl interface

As you can see the ‘Operation FW’ now shows the new firmware version, and the ‘FW Source’ as external. If for any reason you have a problem with the updated firmware, you can easily roll back to the embedded version by deleting the adsl_alc_20190.bin from the routers flash memory.

This can be done by issuing the following command:

delete adsl_alc_20190.bin

When asked to confirm the file deletion just press ‘Enter’