Http <-> 暗号化デッドロックにより、SSL 対応のブートとサービスの開始エラーが遅くなります
この記事では、起動速度が低下し、サービスの起動に失敗する問題の回避策について説明します。
適用対象: Windows Server 2012 R2
元の KB 番号: 2004121
現象
次の現象が発生する可能性があります。
- Windows Server は、コンピューター設定の適用またはセキュリティ ポリシーの適用時に起動後にハングします。
- サーバーの起動が完了すると、ログオンを試みるユーザーが [ユーザー設定の適用] でハングする可能性があります。
- [開始の種類] に [自動] に設定されているサービスが起動しないことがあります。
"自動" に設定されている特定のサービスは、問題なく開始される場合があります(例:
- Dcom プロセス起動ツール
- リモート プロシージャ コール
- イベント ログ
- グループ ポリシー クライアント
- Plug and Play
- DHCP クライアント
- DNS クライアント
- タスク スケジューラ
- 基本フィルター エンジン
- Workstation Service
- Netlogon
"自動" に設定されているその他のサービスは、次のように失敗する可能性があります。
- 印刷スプーラー
- ターミナル サービス
- サーバー サービス
- リモート レジストリ
- WMI
- Distributed Transaction Coordinator
- アプリケーションに関連するすべてのサービス
スタートアップの種類が "自動" のサービスを手動で開始しようとすると、エラー 1053 が発生し、"サービスが開始要求または制御要求にタイムリーに応答しなかった" ことを示す可能性があります。
原因
「現象」セクションで説明されている問題は、Service Control Manager (SCM) データベースのロックが原因で発生します。 ロックの結果、SCM データベースにアクセスしてサービス開始要求を初期化することはできません。 この記事で説明する問題の影響を受ける Windows コンピューターを確認するには、コマンド プロンプトからコマンドを実行 sc querylock
します。
次の出力は、SCM データベースがロックされていることを示しています。
QueryServiceLockstatus - Success
IsLocked: True
LockOwner: .\NT Service Control Manager
LockDuration: 1090 (取得後の秒)
イベント ログには、サービスの起動要求がタイムアウトしたことを示す、Service Control Manager からの情報を超える追加情報はありません。基になる根本原因は、Service Control Manager と HTTP.SYS の間のデッドロックです。
解決方法
この問題を回避するには、最初に開始される別のサービスに依存するように HTTP.SYS の動作を変更できます。 これを実現するには、以下の手順を実行します。
- レジストリ エディターを開きます。
- に
HKLM\SYSTEM\CurrentControlSet\Services\HTTP
移動し、次の複数文字列値 DependOnService を作成します。 - 新しい DependOnService エントリをダブルクリックします。
- [値データ] フィールドに「 CRYPTSVC 」と入力し、[OK] をクリック します。
- サーバーを再起動します。
注:
システムに変更を加える前に、レジストリ/影響を受けるキーのバックアップを作成してください。
詳細
Windows Server 2008 以降、Windows では、すべての自動サービスの起動を待機して Explorer.exe を読み込むわけではありません。 起動パフォーマンスを向上させるには、サービスを [遅延自動開始] に設定できます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示