大規模なタイム オフセットにWindowsタイム サービスを構成する方法

この記事では、大規模なタイム オフセットに対Windowsタイム サービスを構成する方法について説明します。

適用対象:  Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号:   884776

はじめに

Windowsには、Kerberos 認証プロトコルで使用されるタイム サービス ツール (W32Time サービス) が含まれます。 Kerberos 認証は、関連するコンピューター間の時間間隔が最大有効時間スキュー内にある場合に機能します。 既定値は 5 分です。 タイム サービス ツールをオフにすることもできます。 次に、サードパーティのタイム サービスをインストールできます。

タイム サービス ツールの目的は、Microsoft Windows 2000 以降のバージョンの Windows オペレーティング システムを実行している組織内のすべてのコンピューターが共通の時間を使用する方法です。 適切な一般的な時間の使用状況を確認するために、Time Service は権限を制御する階層的な関係を使用します。 既定では、Windowsベースのコンピューターは次の階層を使用します。

  • すべてのクライアント デスクトップ コンピューターは、認証ドメイン コントローラーを権限を持つタイム ソースとして指定します。

  • ドメインでは、すべてのサーバーがクライアント デスクトップ コンピューターと同じプロセスに従います。

  • ドメイン内のすべてのドメイン コントローラーは、プライマリ ドメイン コントローラー (PDC) 操作マスターをタイム ソースとして指名します。

  • すべての PDC 操作マスターは、タイム ソースの選択中のドメインの階層に従います。 ただし、PDC 操作マスターは、階層番号に基づく親ドメイン コントローラーを使用できます。

    注意

    階層番号は、タイム サーバーがプライマリ 参照元にどれだけ近いか定義します。

数値が小さいと、サーバーはプライマリ タイム ソースに近づいています。 この階層では、フォレストのルートにある PDC 操作マスターが組織の権限を持つタイム サーバーになります。 ハードウェア ソースから時刻を収集するために、権限のあるタイム サーバーを構成することを強くお勧めします。 インターネット タイム ソースと同期する権限のあるタイム サーバーを構成しようとするときに、認証はありません。 また、サーバーとスタンドアロン クライアントの時間修正設定を減らすことをお勧めします。 これらの推奨事項に従う場合、より正確な時間がドメインに提供されます。

詳細情報

時間のロールバックを確認すると、コンピューターは、将来または過去に数日、月、年、または数十年の時間を採用できる可能性があります。 次の問題は、コンピューターが時間内にロールフォワードまたはロールバックするときに発生する可能性があります。

  • コンピューター アカウント、ユーザー アカウント、信頼関係のパスワードは、途中で更新される可能性があります。
  • 検疫は、Active Directory ディレクトリ サービス レプリケーションの NTDS レプリケーション イベント 2042 で識別できます。
  • パスワードの不一致は、コンピューター アカウント、ユーザー アカウント、または信頼関係に対して権限を持って復元されます。 このような不一致からの回復には、影響を受けるすべてのアカウントと信頼に対する手動のパスワードリセットが必要な場合があります。

ロールフォワードとタイム ロールバックを行う時間から保護する方法

コンピューターと電源サイクルを再起動すると、BIOS はコンピューターのマザーボード上にあるローカル EPROM の時間を維持します。 このWindows、カーネルは BIOS から現在の時刻を取得します。 この現在の時刻は、W32Time サービスが別のタイム ソースと同期するまでの最初の時刻として使用されます。

32 Windowsサービスは、2 つのレジストリ エントリをサポートしています MaxPosPhaseCorrection MaxNegPhaseCorrection 。 これらのエントリは、タイム サービスがリモート コンピューターから送信される際にローカル コンピューターで受け入れるサンプルを制限します。

定常状態で実行されているコンピューターがタイム ソースからタイム サンプルを受け取った場合、サンプルは、レジストリ エントリが課す位相修正境界に対して MaxPosPhaseCorrection MaxNegPhaseCorrection チェックされます。 時間サンプルが 2 つのレジストリ エントリで適用される制限内にある場合、このサンプルは追加の処理に対して受け入れ可能です。 タイム サンプルがこれらの制限内に入らない場合、タイム サンプルは無視され、タイム サービスは W32Time プライベート ログ ファイルに次のメッセージをログに記録します。

大きすぎます

管理者が正と負のフェーズの修正の値を減らすと、管理者は、Windows ベースのコンピューターの無効なタイム サンプルからコンピューターが時間を受け取る脅威を軽減できます。 一方、管理者が値を小さくすると、管理者は、これらの値が課す制限を超える範囲で、コンピューターが現在の時間よりも先に進むか遅れているのを防ぐ可能性があります。

注意

正および負の修正のレジストリ エントリの値を減らした場合、時間は増加または減少します。

MaxPosPhaseCorrection MaxNegPhaseCorrection Windows 2000、Windows XP、Windows Server 2003、Windows Vista のレジストリ エントリの既定値は次のとおりです。
0xFFFFFFF

この値を使用すると、コンピューターは、どのような不正確な場合でも、いつでもサンプルに含まれる時間を受け取る事が可能になります。

Windows Server 2008 では、MaxPosPhaseCorrection レジストリ エントリと MaxNegPhaseCorrection レジストリ エントリの新しい既定値が採用されています。 この新しい既定値は 48 時間です。 この 48 時間の値は、次のいずれかの値として表されます。

  • 2a300 (16 進数)
  • 172800 (10 進数)

レジストリ エントリとレジストリ エントリは、次の値以外 MaxPosPhaseCorrection MaxNegPhaseCorrection の値に設定することをお勧めします。
MAX (0xFFFFFFFF)

注意

値を MAX (0xFFFFFFFF) 以外の値に設定すると、コンピューターが再起動された場合や外部のタイム ソースへの接続が中断されるシナリオでは、コンピューターが非常に不正確な時間を採用しなくなります。 たとえば、フォレスト内のすべてのドメイン コントローラーで MaxPosPhaseCorrection レジストリ エントリと MaxNegPhaseCorrection レジストリ エントリが 48 時間設定されている場合を考え出します。 1 つのドメイン コントローラーで 48 時間を超える異常なタイム ジャンプが発生した場合、MaxPosPhaseCorrection レジストリ エントリと MaxNegPhaseCorrection レジストリ エントリに設定した値によって、他のコンピューターが同じタイム ジャンプを行うのを防ぐ可能性があります。 したがって、同期が取れないコンピューターは、管理者が調査して修正措置を取るまで、他のコンピューターとは別に保持できます。

時間精度は、フォレスト ルートプライマリ ドメイン コントローラー (PDC) で特に重要です。 PDC はドメインのルート タイム ソースなので、PDC の不正確な時間変更によってドメイン全体のタイム ジャンプが発生する可能性があります。 PDC に位相修正の制限を適用する場合、フォレスト内の他のドメイン コントローラーが新しい時刻を受け入れるのを防ぐことが可能です。

既定値の 5 分または 15 分の代わりに 48 時間の既定値は、次の理由に基づいて行います。

  • W32TM ユーティリティからの出力は読み取りが困難です。
  • W32TM は現在、メンバー コンピューターとメンバー サーバーの時間を対象としません。
  • オペレーティング システムとスタンドアロンのWindowsログに記録されるエラーとイベントは、非常に一貫性がありません。 考えられるエラーには、次のような戻りコードが含まれます。
    • アクセスが拒否されました
    • RPC Server は使用できません

    注意

    これらのエラーは、コンピューターが正確な時間値を採用Windows原因となる可能性があるため、時間のスキューに対する相関関係が低いです。

  • 夏時間のバグにより、1 時間の時間差が発生する可能性があります。
  • AM または PM の構成ミスにより、12 時間の時間差が発生する可能性があります。
  • 日または日付の間違いは、24 時間の時間差を引き起こす可能性があります。

したがって、48 時間は 25 時間または 36 時間後の次の明らかな時間オフセットでした。 管理者は、インフラストラクチャとテストを報告する適切なツールを使用して、値を削減できます。

オペレーティング システムのバージョンとコンピューターの役割に従った具体的な推奨事項については、次のセクションで説明します。

WindowsXP Professionalサーバー 2003 のすべてのWindowsバージョン

ドメイン サーバー

フォレスト ルート PDC (権限を持つタイム サーバー)

ハードウェア ソースから時刻を収集するために、権限のあるタイム サーバーを構成することを強くお勧めします。 インターネット タイム ソースと同期する権限のあるタイム サーバーを構成すると、認証はありません。 次のレジストリ エントリを再構成する必要があります。

  • MaxPosPhaseCorrection
  • MaxNegPhaseCorrection

これら 2 つのレジストリ エントリの既定値は、0xFFFFFFFF。 この既定値は、「いつでも変更を受け入れる」を意味します。 48 時間の値をお勧めします。 レジストリでは、2a300 (16 進数) または 172800 (10 進数) として表されます。 MaxPollInterval レジストリ エントリの値を 10 以下に設定するか、SpecialPollInterval レジストリ エントリの値を 3600 (1 時間) 以下に設定することをお勧めします。

ドメイン内のドメイン コントローラーとメンバー サーバー

レジストリ MaxPosPhaseCorrection エントリ MaxNegPhaseCorrection とレジストリ エントリの既定値は、0xFFFFFFFF。 この既定値は、「いつでも変更を受け入れる」を意味します。 すべてのドメイン コントローラーでこの値を 48 時間に設定することをお勧めします。 48 時間の値は、時間に依存するアプリケーションを実行しているメンバー サーバーでも設定できます。

注意

これらのレジストリ エントリの詳細については、「Windows Server 2003 Windows XP Time Service レジストリ エントリ」セクションを参照してください。

スタンドアロン クライアント

レジストリ MaxPosPhaseCorrection エントリ MaxNegPhaseCorrection とレジストリ エントリの既定値は 54,000 (15 時間) です。 セキュリティのベスト プラクティスとして、この既定値を小さい値にすることをお勧めします。 また、時間ソース、ネットワーク状態、ポーリング間隔、セキュリティ要件に応じて、値を 3600 (1 時間) またはさらに小さい値に設定することをお勧めします。

WindowsServer 2003 Windows XP Time Service レジストリ エントリ

種類 詳細
レジストリ エントリ MaxPosPhaseCorrection
値の種類 DWORD
サブキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
メモ このエントリは、サービスが実行できる最大の正の時刻の修正を数秒で指定します。 サービスが必要以上に大きな変更を行ったと判断した場合は、代わりにイベントをログに記録します。 特別なケース: 0xFFFFFFFF時間を常に修正する方法を意味します。 ドメイン メンバーの既定値は、0xFFFFFFFF。 スタンドアロン クライアントとサーバーの既定値は 54,000 (15 時間) です。
レジストリ エントリ MaxNegPhaseCorrection
値の種類 DWORD
サブキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
メモ このエントリは、サービスが実行できる最大の負の時間補正を秒で指定します。 サービスがこれより大きい変更が必要と判断した場合は、代わりにイベントをログに記録します。 特殊なケース: -1 は、常に時刻を修正します。 ドメイン メンバーの既定値は、0xFFFFFFFF。 スタンドアロン クライアントとサーバーの既定値は 54,000 (15 時間) です。
レジストリ エントリ MaxPollInterval
値の種類 DWORD
サブキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
メモ このエントリは、システム ポーリング間隔で有効になっている最大間隔を秒で指定します。 システムはスケジュールされた間隔に従ってポーリングする必要があるが、プロバイダーはサンプルの要求時にサンプルの生成を拒否できます。 ドメイン メンバーの既定値は 10 です。 スタンドアロン クライアントとサーバーの既定値は 15 です。
レジストリ エントリ SpecialPollInterval
値の種類 DWORD
サブキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
メモ このエントリは、手動ピアの特別なポーリング間隔を秒で指定します。 SpecialInterval 0x1フラグが有効になっている場合、W32Time はオペレーティング システムが決定するポーリング間隔ではなく、このポーリング間隔を使用します。 ドメイン メンバーの既定値は 3,600 です。 スタンドアロン クライアントとサーバーの既定値は 604,800 です。

注意

これらの設定を展開するには、グローバル ポリシー オブジェクト エディターを使用することをお勧めします。 Windows Server 2003 ベースのフォレストの Windows タイム サービスの詳細については、「Windows タイム サービス(W32Time)」を参照してください

グループ ポリシー オブジェクト (GPO) で定義されている既定の Windows Time Service パラメーター値は、Windows Server 2003 ベースのドメイン コントローラーのレジストリで定義されている既定値と一致しない場合があります。 GPO を使用して MaxPosPhaseCorrection 値と MaxNegPhaseCorrection 値を Windows Server 2003 ドメイン コントローラーに展開する場合は、GPO がレジストリ内の他の Windows Time サービス パラメーターの値を変更しなかっ その他Windowsタイム サービス パラメーターの値は、ドメイン コントローラーの既定のレジストリ値と一致するために GPO で変更する必要がある場合があります。

すべてのバージョンの Windows 2000 Service Pack 4 (SP4)

ドメイン サーバー

フォレスト ルート PDC (権限を持つタイム サーバー)

ハードウェア ソースから時刻を収集するために、権限のあるタイム サーバーを構成することを強くお勧めします。 インターネット タイム ソースと同期する権限のあるタイム サーバーを構成する場合、手動モードでの認証はありません。 レジストリ エントリを MaxAllowedClockErrInSecs 再構成できます。 既定値は 43,200 です。 推奨される値は、時間ソース、ネットワーク条件、およびセキュリティ要件に応じて、900 (15 分) またはさらに小さい値です。 また、ポーリング間隔によっても異なります。 ポーリング間隔の値は、24 時間ごとに 1 時間に設定することをお勧めします。

注意

このレジストリ エントリの詳細については、「Server 2000 SP 4 レジストリ エントリWindows」を参照してください。

ドメイン内のドメイン コントローラーとメンバー サーバー

同期の種類は NT5DS です。 タイム サービスはドメイン階層から同期し、タイム サービスはすべての時間の変更を受け入れる。 NT5DS はタイム オフセットを考慮せずに任意の時間変更を受け入れるので、タイム同期サブネットに信頼性の高いフォレスト ルート タイム ソースを設定することが重要です。

注意

NT5DS 値は、同期の種類がレジストリ エントリから取得されたかどうかを示します。

スタンドアロン クライアント

レジストリ MaxAllowedClockErrInSecs エントリの既定値は 43,200 (12 時間) です。 セキュリティのベスト プラクティスとして、この既定値を小さい値にすることをお勧めします。 時間ソース、ネットワーク状態、ポーリング間隔、セキュリティ要件に応じて、値を 3600 (1 時間) またはさらに小さい値に設定することをお勧めします。

WindowsServer 2000 SP 4 レジストリ エントリ

種類 詳細
レジストリ エントリ MaxAllowedClockErrInSecs
値の種類 DWORD
サブキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
メモ 有効になっている最大クロック変更を秒で指定します。 イベントがログに記録された場合、時刻は値に基づいて調整されません。 この動作は、疑わしいタイム スタンプ アクティビティから保護するために発生します。 ドメイン メンバーの既定値は 43,200 です。