Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł pomaga rozwiązać problem polegający na tym, że wyświetlany czas na komputerach, których dotyczy problem, nie jest zgodny z bieżącym czasem lokalnym po wykonaniu uaktualnienia w miejscu do 64-bitowej wersji systemu Windows 7 lub Windows Server 2008 R2.
Oryginalny numer KB: 2001086
Symptomy
Rozważmy następujący scenariusz:
Instalujesz 64-bitową wersję systemu Windows Vista, Windows 7 lub Windows Server 2008 R2.
Należy ustawić strefę czasową izraela (czas standardowy). W systemie Windows Vista jest on wyświetlany jako (GMT+02:00) Jerozolima. W systemach Windows 7 i Windows Server 2008 R2 jest on wyświetlany jako (UTC+02:00) Jerozolima.
Uaktualnienie w miejscu odbywa się do 64-bitowej wersji systemu Windows 7 lub Windows Server 2008 R2.
Oczekiwane zachowanie:
Po uaktualnieniu ustawienie strefy czasowej jest poprawnie skonfigurowane i takie funkcje jak Dynamiczny czas DST nadal działają.
Obserwowane zachowanie:
Po uaktualnieniu nie można rozpoznać bieżącej strefy czasowej za pomocą interfejsu API GetDynamicTimeZoneInformation(). Bez interwencji użytkownika w celu poprawienia tego błędu dynamiczny DST jest uszkodzony, a komputer nie dostosowuje się do daty DST w nadchodzących latach. W związku z tym wyświetlany czas na komputerach, których dotyczy problem, nie jest zgodny z bieżącym czasem lokalnym.
W przypadku wystąpienia tego problemu użytkownicy nie otrzymują powiadomienia o błędzie.
Dodatkowy problem z systemem Windows Server 2008 R2
Na serwerach z systemem Windows Server 2008 R2 nie można zmienić ustawienia strefy czasowej i zostanie wyświetlony następujący komunikat o błędzie:
Bieżąca strefa czasowa nie jest rozpoznawana. Wybierz prawidłową strefę czasową.
Przyczyna
Ustawienie rejestru TimeZoneKeyName jest definiowane jako typ danych 128 WCHAR REG_SZ. Jeśli 128 WCHAR w TimeZoneKeyName nie jest terminatorem o wartości null, proces uaktualniania systemu (Offline.xml) dołącza wartość null do ciągu. Zwiększa to jego długość do 129 WCHARs. Ponieważ system Windows ma bufor WHCAR 128, w którym mają być przechowywane te dane, system nie ładuje zmodyfikowanego ciągu z rejestru.
Ten problem dotyczy uaktualnień do 64-bitowych systemów Windows 7 i Windows Server 2008 R2.
Dodatkowa przyczyna systemu Windows Server 2008 R2
Brak uprawnień na serwerach, które nie działają dla następującego podklucza rejestru:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
i HKLM\System\CurrentControlSet\Control\TimeZoneInformation
Rozwiązanie
Na komputerach z systemem Windows Server 2008 R2 uruchom element Data i godzina na Panel sterowania lub na pasku zadań systemu Windows. Jeśli komunikat w oknie zegara wskazuje, że strefa czasowa jest nierozpoznana, kliknij przycisk Zmień strefę czasową, sprawdź ustawienie strefy czasowej, a następnie naciśnij przycisk OK. Spowoduje to przywrócenie poprawnych wartości do wartości TimeZoneKeyName. Na klientach z systemem Windows 7 sprawdź wybór strefy czasowej w fazie OOBE Instalatora. Spowoduje to przywrócenie ustawienia TimeZoneKeyName w rejestrze.
Uwaga 16.
- System operacyjny Windows używa czasu UTC wewnętrznie dla operacji zależnych od czasu. Wyświetlany czas wyświetlany na pasku zadań systemu Windows lub Panel sterowania element jest oparty na czasie UTC plus lub minus regionalne przesunięcie czasu skorygowane dla reguł czasu letniego na podstawie ustawień regionalnych strefy czasowej komputerów lokalnych.
- Ta usterka nie ma wpływu na wewnętrzny czas systemu używany przez system Windows. Może to spowodować, że wyświetlany czas pojawi się niepoprawnie.
- Po skorygowaniu ustawienia godziny w elemencie Data i godzina najpierw sprawdź, czy skonfigurowano poprawną strefę czasową. Zrób to przed wprowadzeniem zmian daty lub godziny, aby nie przypadkowo skonfigurować niepoprawnego czasu systemowego.
Więcej informacji
Dynamiczny DST
W niektórych krajach/regionach daty DST różnią się od roku do roku i nie mogą być zdefiniowane przez jedną regułę. W związku z tym system Windows zawiera funkcję dynamicznej DST, która przechowuje reguły rocznie w rejestrze. Gdy rok zmieni się, bieżące informacje o strefie czasowej są odświeżane przy użyciu poprawnych informacji Ost dla tego roku.
Dynamiczna data DST zależy od następującej wartości rejestru ustawionej na nazwę klucza strefy czasowej, w której znajdują się dynamiczne dane DST (na przykład "Czas standardowy Izraela"):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\TimeZoneKeyName
Dotyczy to tylko stref czasowych, które mają różne reguły dla różnych lat (Dynamic DST). Wynika to z faktu, że wartość rejestru wskazująca, gdzie są przechowywane te reguły rocznie, jest uszkodzona. Jeśli brakuje tej wartości, dane informacji o strefie czasowej nie są odświeżane w następnym roku. Powoduje to, że w poprzednim roku reguły DST były używane do obliczania czasu lokalnego. Natychmiast po uaktualnieniu wersji systemu czas wyświetlania nie ma wpływu na ten problem. Otrzymasz powiadomienie o nierozpoznanej strefie czasowej, jeśli klikniesz zegar paska zadań lub otworzysz element Data i godzina w Panel sterowania.
Jeśli strefa czasowa nie została poprawiona, przyszłe przejścia do lub z DST mogą wystąpić w niewłaściwym czasie. Spowodowałoby to niepoprawny czas w systemie lub niepoprawne konwersje między czasem systemowym i lokalnym.
Wszystkie strefy czasowe są potencjalnie dotknięte, ale głównym skutkiem są instalacje systemu operacyjnego skonfigurowane do używania stref zawierających dynamiczne dane DST. Strefy czasowe obsługujące dynamiczną strefę DST są następujące:
Alaskan (czas standardowy)
Arabski (czas standardowy)
Argentyna (czas standardowy)
Atlantycki (czas standardowy)
AUS Wschodni czas standardowy
Cen. Australia (czas standardowy)
Środkowy brazylijski (czas standardowy)
Środkowy czas standardowy
E. Ameryka Południowa (czas standardowy)
Wschodni czas standardowy
Egipt (czas standardowy)
Grenlandii (czas standardowy)
Iran (czas standardowy)
Izrael (czas standardowy)
Mauritius (czas standardowy)
Montevideo (czas standardowy)
Maroko (czas standardowy)
Górski (czas standardowy)
Nowa Zelandia (czas standardowy)
Nowa Fundlandia (czas standardowy)
Pacyfik (czas standardowy)
Pacyficzny (czas standardowy)
Pakistan (czas standardowy)
Paragwaj (czas standardowy)
Tasmania (czas standardowy)
Wenezuela (czas standardowy)
W. Australia (czas standardowy)
Powodem, dla którego wpływ w tym przypadku jest większy, jest to, że dane DST dla strefy czasowej mogą nie zostać zaktualizowane w celu odzwierciedlenia zasad, które powinny być obowiązujące w danym roku. Może to spowodować przejście do lub z DST w niepoprawnym czasie w danej strefie czasowej. Nie jest to problem, jeśli dynamiczny czas DST nie występuje w strefie czasowej. Jednak uszkodzone dane rejestru powodują niepowodzenie wywołania metody GetDynamicTimeZoneInformation(), niezależnie od tego, czy strefa czasowa obsługuje dynamiczną wartość DST.