イベント ID 41 の高度なトラブルシューティング: "最初にクリーンシャットダウンせずにシステムが再起動されました"

注:

ホーム ユーザー: この記事は、サポート担当者や IT プロフェッショナルによる利用を想定しています。 ブルー スクリーン エラー メッセージの詳細については、「ブルー スクリーン エラーの トラブルシューティング」を参照してください。

Windows をシャットダウンする推奨される方法は、[ スタート] を選択してから、コンピューターをオフまたはシャットダウンするオプションを選択することです。 この標準方法を使用すると、オペレーティング システムはすべてのファイルを閉じ、実行中のサービスとアプリケーションに通知して、未保存のデータをディスクに書き込み、アクティブなキャッシュをフラッシュできるようにします。

コンピューターが予期せずシャットダウンした場合、次回コンピューターが起動すると、Windows によってイベント ID 41 がログに記録されます。 イベント テキストは、次の情報のようになります。

Event ID: 41  
Description: The system has rebooted without cleanly shutting down first.

このイベントは、予期しないアクティビティによって Windows が正しくシャットダウンできなかったことを示します。 このようなシャットダウンは、電源の中断または Stop エラーによって発生する可能性があります。 可能な場合、Windows はシャットダウン時にエラー コードを記録します。 次の Windows スタートアップの カーネル フェーズ では、Windows によってこれらのコードがチェックされ、イベント ID 41 のイベント データに既存のコードが含まれます。

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  
SleepInProgress false  
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)  

予期しないシャットダウンまたは再起動のトラブルシューティングを行うときにイベント ID 41 を使用する方法

イベント ID 41 自体には、発生した内容を明示的に定義するための十分な情報が含まれていない可能性があります。 通常、予期しないシャットダウン時に何が発生したかも考慮する必要があります (たとえば、電源に障害が発生しました)。 この記事の情報を使用して、状況に適したトラブルシューティング アプローチを特定します。

  • シナリオ 1: Stop エラーが原因でコンピューターが再起動され、イベント ID 41 に Stop エラー (バグ チェック) コードが含まれている
  • シナリオ 2: 電源ボタンを長押ししたため、コンピューターが再起動する
  • シナリオ 3: コンピューターが応答しないかランダムに再起動され、イベント ID 41 がログに記録されないか、イベント ID 41 エントリにエラー コード値が 0 の一覧が表示される

シナリオ 1: Stop エラーが原因でコンピューターが再起動され、イベント ID 41 に Stop エラー (バグ チェック) コードが含まれている

停止エラーが原因でコンピューターがシャットダウンまたは再起動すると、Windows には、イベント ID 41 の Stop エラー データが、より多くのイベント データの一部として含まれます。 この情報には、次の例に示すように、Stop エラー コード (バグ チェック コードとも呼ばれます) が含まれます。

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  

注:

イベント ID 41 には、バグ チェックコードが 10 進形式で含まれています。 バグ チェック コードを説明するほとんどのドキュメントでは、コードを 10 進値ではなく 16 進値として参照します。 10 進数を 16 進数に変換するには、次の手順に従います。

  1. [スタート] を選択し、[検索] ボックスに「calc」と入力し、[電卓] を選択します。
  2. [電卓] ウィンドウで、[プログラマーの表示>] を選択します
  3. 電卓の左側で、[ 12 月 ] が強調表示されていることを確認します。
  4. キーボードを使用して、バグ チェック コードの 10 進値を入力します。
  5. 電卓の左側で、[ 16 進] を選択します。
    電卓に表示される値が 16 進コードになりました。

バグ チェック コードを 16 進数形式に変換する場合は、"0x" の指定の後に 8 桁の数字が続く (つまり、"x" の後のコードの部分に 8 桁の数字を入力するのに十分なゼロが含まれていることを確認します)。 たとえば、0x9Fは通常、0x0000009fとして文書化され、0xAは0x0000000Aとして文書化されます。 この記事のイベント データ例の場合、"159" は 0x0000009f に変換されます。

16 進値を特定したら、次の参照を使用してトラブルシューティングを続行します。

シナリオ 2: 電源ボタンを長押ししたため、コンピューターが再起動する

この方法でコンピューターを再起動すると Windows のシャットダウン操作が妨げられるため、代替手段がない場合にのみこの方法を使用することをお勧めします。 たとえば、コンピューターが応答しない場合は、この方法を使用する必要があります。 電源ボタンを長押ししてコンピューターを再起動すると、コンピューターは PowerButtonTimestamp エントリの 0 以外の値を含むイベント ID 41 をログに記録します。

<EventData>
<Data Name="BugcheckCode">0</Data>
<Data Name="BugcheckParameter1">0x0</Data>
<Data Name="BugcheckParameter2">0x0</Data>
<Data Name="BugcheckParameter3">0x0</Data>
<Data Name="BugcheckParameter4">0x0</Data>
<Data Name="SleepInProgress">0</Data>
<Data Name="PowerButtonTimestamp">131728546170882432</Data>
<Data Name="BootAppStatus">0</Data>
</EventData>

応答しないコンピューターのトラブルシューティングに関するヘルプについては、「 Windows ヘルプ」を参照してください。 "ハング"、"応答中"、"空白の画面" などのキーワードを使用して、支援を検索することを検討してください。

シナリオ 3: コンピューターが応答しないかランダムに再起動され、イベント ID 41 が記録されていないか、イベント ID 41 エントリまたはエラー コード値が 0 の一覧に表示される

このシナリオには、次の状況が含まれます。

  • 応答しないコンピューターの電源をオフにしてから、コンピューターを再起動します。
    コンピューターが応答しなくなったことを確認するには、キーボードの Caps ロック キーを押します。 Caps ロック キーを押してもキーボードの Caps ロック ライトが変わらない場合、コンピューターが応答しなくなる可能性があります (ハード ハングとも呼ばれます)。
  • コンピューターは再起動しますが、イベント ID 41 は生成されません。
  • コンピューターは再起動してイベント ID 41 を生成しますが、 BugcheckCodePowerButtonTimestamp の値は 0 です。

このような場合、Windows がエラー コードを生成したり、エラー コードをディスクに書き込んだりできなくなります。 何かがディスクへの書き込みアクセスをブロックする可能性があります (応答しないコンピューターの場合と同様)。

イベント ID 41 の情報は、問題の確認を開始する場所を示しています。

  • イベント ID 41 が記録されていないか、コードチェックバグが 0 です。 この動作は、電源の問題を示している可能性があります。 コンピューターの電源が中断された場合、停止エラーが発生せずにコンピューターがシャットダウンする可能性があります。 Stop エラーが生成された場合、エラー コードのディスクへの書き込みが完了しない可能性があります。 次回コンピューターを起動すると、イベント ID 41 がログに記録されない可能性があります。 または、その場合、コードチェックバグは 0 です。 次の条件が原因である可能性があります。

    • ポータブルコンピュータの場合、バッテリーは取り外されたか、排水されました。
    • デスクトップ コンピューターの場合、コンピューターが取り外されたか、停電が発生しました。
    • 電源が不足しているか、障害が発生しています。
  • PowerButtonTimestamp の値は 0 です。 この動作は、入力に応答していないコンピューターに電源を切断した場合に発生する可能性があります。 次の条件が原因である可能性があります。

    • Windows プロセスによってディスクへの書き込みアクセスがブロックされ、電源ボタンを少なくとも 4 秒間長押ししてコンピューターをシャットダウンしました。
    • 応答しないコンピューターに電源を切断しました。
  • ダンプ ファイルの書き込みに失敗し、すべての値が 0 です。 例:

    <EventData>
    <Data Name="BugcheckCode">0</Data>
    <Data Name="BugcheckParameter1">0x0</Data>
    <Data Name="BugcheckParameter2">0x0</Data>
    <Data Name="BugcheckParameter3">0x0</Data>
    <Data Name="BugcheckParameter4">0x0</Data>
    <Data Name="SleepInProgress">0</Data>
    <Data Name="PowerButtonTimestamp">0</Data>
    <Data Name="BootAppStatus">0</Data>
    </EventData>
    

    ただし、volmgr: クラッシュ ダンプの初期化に失敗しました!によってログに記録されたイベント ID 46 があります。 このイベントは、構成されたダンプ ファイルなしでコンピューターが起動した場合に発生する可能性があります。 既定のダンプ ファイルはページ ファイルです。

    イベント ログのスクリーンショット。

    したがって、予期しない再起動が発生し、イベント ID 41 のすべての値が 0 の場合は、イベント ID が volmgr によって 46 である場合にチェックします。 その場合は、ページファイルの構成をチェックします。 予期しない再起動はバグチェックのために引き続き発生する可能性がありますが、システムはイベント ID 41 でバグチェックの種類を書き込むことができず、メモリ ダンプも生成できませんでした。 コンピューターの起動時にイベント ID 46 を参照する

通常、このシナリオで説明されている現象は、ハードウェアの問題を示しています。 問題を特定するには、次の手順を実行します。

  • オーバークロックを無効にします。 コンピューターでオーバークロックが有効になっている場合は、無効にします。 システムが正しい速度で実行されたときに問題が発生することを確認します。
  • メモリを確認します。 メモリ チェッカーを使用して、メモリの正常性と構成を判断します。 すべてのメモリ チップが同じ速度で実行されていること、およびすべてのチップがシステムで正しく構成されていることを確認します。
  • 電源を確認します。 電源に、インストールされているデバイスを適切に処理するのに十分なワット数があることを確認します。 メモリを追加した場合、新しいプロセッサをインストールした場合、より多くのドライブをインストールした場合、または外部デバイスを追加した場合、このようなデバイスでは、現在の電源が一貫して提供できるよりも多くのエネルギーが必要になる可能性があります。 コンピューターへの電源が中断されたためにコンピューターがイベント ID 41 をログに記録した場合は、バッテリ バックアップ電源などの無停電電源装置 (UPS) の取得を検討してください。
  • オーバーヒートがないか確認します。 ハードウェアの内部温度を調べ、オーバーヒートコンポーネントがないかチェックします。
  • コンピューターが物理マシンの場合は、コンピューターが応答しないことを検出した自動サーバー回復 (ASR) ソフトウェアによって再起動された可能性があります。
  • システムが Hyper-V 仮想マシン (VM) で実行されていて、クラスター化された環境に含まれていない場合は、Hyper-V ハートビート機能によってシステムが再起動されている可能性があります。 この機能が有効になっていて、ホストが VM からのハートビートを検出しない (応答性が高くない可能性がある) 場合、Hyper-V は VM を再起動します。
  • Hyper-V クラスター環境で問題が発生した場合、問題は [仮想マシンのハートビート監視を有効にする] オプションに関連している 可能性があります。 クラスター環境で実行されている仮想マシンから完全メモリ ダンプ ファイルを取得しようとすると、破損したメモリ ダンプ ファイルに関するページを参照してください。
  • VMWare VM で問題が発生した場合は、VMWare のハートビート機能に関連しているか、VM がサード パーティのクラスターの一部である可能性があります。
  • アプリケーション ログとシステム ログの両方で、シャットダウン時刻 (イベント ID 6008 から取得) の前に疑わしいイベントがないか確認します。

これらのチェックを実行しても問題を特定できない場合は、システムを既定の構成に設定し、問題が引き続き発生するかどうかを確認します。

注:

コードチェックバグを含む Stop エラー メッセージが表示されるが、イベント ID 41 にそのコードが含まれていない場合は、コンピューターの再起動動作を変更します。 これを行うには、次の手順を実行します。

  1. [マイ コンピューター] を右クリックし、[プロパティ>] [システムの詳細設定]>[詳細設定] の順に選択します。
  2. [ スタートアップと回復 ] セクションで、[ 設定] を選択します。
  3. [チェックを自動的に再起動する] ボックスをオフにします。

詳細

イベント ID の詳細 41

Kernel Power イベント ID 41 エラーは、コンピューターが予期せずシャットダウンまたは再起動したときに発生します。 Windows ベースのコンピューターが起動すると、コンピューターが正常にシャットダウンされたかどうかを判断するためのチェックが実行されます。 そうでない場合は、Kernel Power イベント ID 41 メッセージが生成されます。

イベント ID 41 は、Windows が正しくシャットダウンできなかった予期しないことが発生したことを報告するために使用されます。 発生した内容を明示的に定義するための情報が不十分な場合があります。 詳細については、「 カーネル Power イベント ID 41 」を参照してください。

  • ログ名: システム
  • 製品: Windows オペレーティング システム
  • ID: 41
  • ソース: Microsoft-Windows-Kernel-Power
  • レベル: クリティカル
  • バージョン: 6.1
  • メッセージ: システムは、最初にクリーンシャットダウンせずに再起動されました。 このエラーは、システムが予期せず応答を停止したり、クラッシュしたり、電源が失われたりした場合に発生する可能性があります。

注:

.evtx ファイルに表示される時刻は、システムの時刻に合わせて調整されます。 サーバーのタイム ゾーンを確認します。

  • イベント ID 41: このイベントは、完全なシャットダウンなしで Windows が再起動されたことを示します。
  • イベント ID 1074: このイベントは、アプリケーションがシステムのシャットダウンまたは再起動を担当する場合にログに記録されます。 また、[ スタート ] メニューを使用するか、Ctrl + Alt + Del キーを押して、ユーザーがシステムを再起動またはシャットダウンしたタイミングも示します。
  • イベント ID 6006: このイベントは、Windows が適切にオフになっていることを示します。
  • イベント ID 6008: このイベントは、不適切なシャットダウンまたはダーティシャットダウンを示します。 最新のシャットダウンが予期しない場合にログに記録されます。

コンピューターがシャットダウンする直前に、 shutdown.exe Source=User32 とイベント ID 1074 とカスタム メッセージ & 理由コードを含むシャットダウン イベントが Windows システム ログに記録されます。

イベント ログは、からトリガーされた shutdown.exe 再起動が保留中であることを通知する唯一の方法です。 このイベントには、ユーザー名と、コマンドが発行された shutdown 日時も記録されます。

を使用して shutdown.exe サーバーを再起動する場合、通常、シャットダウン プロセスでは、実行中の各サービスが停止する時間があることを確認するために 30 秒が許可されます。 サービスはアルファベット順にシャットダウンされます。 または SC を使用して特定の順序でサービスを手動でNET STOP停止すると、少し高速になる可能性があります。

ブート ステータス ファイル (Windows 内部から 6 番目)

Windows では、起動状態ファイル (%SystemRoot%\Bootstat.dat) を使用して、スタートアップやシャットダウンなど、システム ライフ サイクルのさまざまなステージを経て進行したという事実を記録します。

これにより、ブート マネージャー、Windows ローダー、およびスタートアップ修復ツールは、ユーザーの回復と診断ブート オプション (最終既知の良好なモードやセーフ モードなど) を提供するために、異常なシャットダウンやシャットダウンの失敗を検出できます。 このバイナリ ファイルには、システムライフ サイクルの次のフェーズの成功をシステムが報告する情報が含まれています。

  • ブート (正常なブートの定義は、前に説明した最後の既知の良好な状態を判断するために使用されたものと同じです)
  • シャットダウン
  • 休止状態からの再開または中断

ブート状態ファイルは、ユーザーが最後にオペレーティング システムを起動しようとしたときに問題が検出されたかどうか、および表示された回復オプションも示します。これは、ユーザーが問題を認識し、アクションを実行したことを示します。 ntdll.dll のランタイム ライブラリ API (Rtl) には、Windows がファイルの読み取りとファイルへの書き込みに使用するプライベート インターフェイスが含まれています。 BCD と同様に、ユーザーが編集することはできません。

シャットダウンについて

シャットダウンが開始されると、Windows はユーザー インターフェイス (UI) スレッドを持つ実行中のすべてのアプリケーションにWM_QUERYENDSESSIONメッセージを送信します。 このメッセージは、保存されていないデータを保存し、正常に終了するようにアプリケーションに求めます。 アプリケーションが特定の制限時間内にメッセージに応答しない場合、Windows はアプリケーションにWM_ENDSESSION メッセージを送信し、アプリケーションを直ちに終了します。

すべてのアプリケーションがWM_QUERYENDSESSIONメッセージに応答し、正常に終了した場合、Windows はシステム イベント ログにクリーンシャットダウン イベントを記録します。 アプリケーションがメッセージに応答しない場合、または異常終了した場合、Windows はシステム イベント ログにダーティシャットダウン イベントを記録します。

予期しないシャットダウンは、主にオペレーティング システムの外部のコンポーネントによって発生します。

ダーティシャットダウンは、適切なシャットダウンプロセスを経ずにコンピュータシステムがシャットダウンされたときです。 これは、電源が突然切断されたとき、または電源ボタンを押してコンピューターが強制的にシャットダウンされた場合に発生する可能性があります。 ダーティシャットダウンは、データの損失や破損を引き起こす可能性があり、起動の問題にもつながります。

ダーティシャットダウンカウントレジストリは、適切なシャットダウンプロセスを経ずにコンピュータシステムがシャットダウンされた回数を追跡するために使用されるWindowsレジストリのレジストリキーです。 このキーは、起動の問題のトラブルシューティングを行い、システムの電源が正しく動作していないかどうかを特定する場合に役立ちます。

次のレジストリ キー Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability内のすべての値 (DirtyShutdown、LastAliveStamp、TimeStampInterval など) をクリアすることもできます。 これは、予期しないシャットダウン後にシャットダウン イベント トラッカーが表示されないようにするのに役立ちます。