一連のActive Directoryの構築と検証を行なっている時に、あるタイミングから"Preauthentication failed"というエラーがでて、ADドメインユーザでログインができなくなってしまった。色々と調べていたら、ADサーバのタイムゾーンが、JSTからUTCに戻ってしまっていることが分かり、JSTに再設定したところ、問題が解消された。
なぜタイムゾーンがUTCに戻ったんだろうと疑問に思ってつぶやいたら、mayukiより、アドバイスをもらった。
@muramasa64 AWSでインスタンス再起動とかしてません? http://t.co/skwxYOcjag
— Mayuki Sawatari (@mayuki) 2014, 9月 9
まさにその通りで、インスタンスをstop & startを実施したりしていた。このドキュメントによると、この動作を抑止することができるようなので、設定を行う。
コマンドプロンプトを開き、下記のコマンドを実行すれば良い。
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlTimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
結果を確認したければ、下記のコマンドを実行して出力を確認する。RealTimeIsUniversalの値が、REG_DWORDで1になっている。
reg query "HKEY_LOCAL_MACHINESystemCurrentControlSetControlTimeZoneInformation" /s HKEY_LOCAL_MACHINESystemCurrentControlSetControlTimeZoneInformation DaylightBias REG_DWORD 0x0 DaylightName REG_SZ @tzres.dll,-631 StandardStart REG_BINARY 00000000000000000000000000000000 StandardBias REG_DWORD 0x0 StandardName REG_SZ @tzres.dll,-632 Bias REG_DWORD 0xfffffde4 DaylightStart REG_BINARY 00000000000000000000000000000000 TimeZoneKeyName REG_SZ Tokyo Standard Time DynamicDaylightTimeDisabled REG_DWORD 0x0 ActiveTimeBias REG_DWORD 0x0 RealTimeIsUniversal REG_DWORD 0x1
これで問題ないようだ。
元記事はこちらです。
「[AWS][Windows] EC2のWindows Server 2008以降はインスタンスの再起動を行うとタイムゾーンがUTCにリセットされる、その対処法」