Windows computers and Adak time & timezones

The Issue

A few weeks ago, I ran into an issue where time on computers in Adak (an island in the Aleutian Islands, in Alaska) were completely wrong after Daylight Savings. Adak is 1 hour behind the rest of Alaska (per Wikipedia, and the client), but was now 2 hours behind.

Research

From Wikipedia’s entry for Adak:

Time zone Hawaii-Aleutian (HST) (UTC-10)
• Summer (DST) HDT (UTC-9)

After a bit of research I found that the computers had been configured with the Hawaiian timezone before being shipped out. This wouldn’t be a problem except that Hawaii doesn’t use Daylight Savings Time (DST). This means that outside of DST Adak is set to the correct time, but during DST Adak is still using the Hawaiian timezone without DST.

From Microsoft’s support page:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Alaskan Standard Time]
"TZI"=hex:1c,02,00,00,00,00,00,00,c4,ff,ff,ff,00,00,0b,00,00,00,01,00,02,00,00,00,00,00,00,00,00,00,03,00,00,00,02,00,02,00,00,00,00,00,00,00
"Display"="(UTC-09:00) Alaska"
"Dlt"="Alaskan Daylight Time"
"Std"="Alaskan Standard Time"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Alaskan Standard Time\Dynamic DST]
"2006"=hex:1c,02,00,00,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,00,00,00,00,00,00,00,00,04,00,00,00,01,00,02,00,00,00,00,00,00,00
"2007"=hex:1c,02,00,00,00,00,00,00,c4,ff,ff,ff,00,00,0b,00,00,00,01,00,02,00,00,00,00,00,00,00,00,00,03,00,00,00,02,00,02,00,00,00,00,00,00,00
"FirstEntry"=dword:000007d6
"LastEntry"=dword:000007d7

And

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Hawaiian Standard Time]
"TZI"=hex:58,02,00,00,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"Display"="(UTC-10:00) Hawaii"
"Dlt"="Hawaiian Daylight Time"
"Std"="Hawaiian Standard Time"

Note on the support page that there is no Hawaiian Standard Time with DST.

Solution

EDIT: See the “Update” section below for a better solution.

While I might have been able to reverse or discover the format of the hex values used to set the DST start/end and had each computer create an “Adak” timezone, I opted to create a GPO that set two scheduled tasks.

The GPO included one task to run the morning of DST start to set the timezone to “Alaskan Standard Time_dstoff” , and one task to run the morning of DST end to set the timezone back to “Hawaiian Standard Time”. I also included an extra trigger on the initial task in the future an evening so the GPO would have time to propagate out to all the computers at the site and then trigger that evening to update them without waiting until the end of DST.

Adak Timezone GPO - tzutil.exe /s "Alaskan Standard Time_dstoff"
Adak Timezone GPO – tzutil.exe /s “Alaskan Standard Time_dstoff”

 

Adak Timezone GPO - tzutil.exe /s "Hawaiian Standard Time"
Adak Timezone GPO – tzutil.exe /s “Hawaiian Standard Time”

Update

As of 2018/2019, Microsoft has added a timezone for the Aleutian Islands.

Leave a comment

Your email address will not be published. Required fields are marked *