イベント ID 41 の高度なトラブルシューティング: "最初にシステムが正常にシャットダウンされずに再起動されました"
Note
ホーム ユーザー: この記事は、サポート担当者や IT プロフェッショナルによる利用を想定しています。 ブルー スクリーンのエラー メッセージの詳細については、「 ブルー スクリーン エラーのトラブルシューティング」を参照してください。
Windows をシャットダウンする推奨される方法は、 Start を選択してから、コンピューターの電源をオフまたはシャットダウンするオプションを選択することです。 この標準方法を使用すると、オペレーティング システムはすべてのファイルを閉じ、実行中のサービスとアプリケーションに通知して、保存されていないデータをディスクに書き込み、アクティブなキャッシュをフラッシュできるようにします。
コンピューターが予期せずシャットダウンした場合、Windows は次回コンピューターを起動する際にイベント ID 41 をログに記録します。 イベント テキストは、次の情報のようになります。
Event ID: 41
Description: The system has rebooted without cleanly shutting down first.
このイベントは、予期しないアクティビティが原因で 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
Note
イベント ID 41 には、バグ チェック コードが 10 進形式で含まれています。 バグ チェック コードについて説明するほとんどのドキュメントでは、コードを 10 進値ではなく 16 進数の値として参照します。 10 進数を 16 進数に変換するには、次の手順に従います。
- [開始] を選択し、[Search] ボックスに「calc」と入力し、Calculator を選択します。
- Calculator ウィンドウで、View>Programmer を選択します。
- 電卓の左側で、 Dec が強調表示されていることを確認します。
- キーボードを使用して、バグ チェック コードの 10 進値を入力します。
- 電卓の左側にある Hex を選択します。
電卓に表示される値が 16 進コードになりました。
バグ チェック コードを 16 進数形式に変換する場合は、"0x" の指定の後に 8 桁の数字が続いていることを確認します (つまり、"x" の後のコードの部分には、8 桁の数字を入力するのに十分なゼロが含まれています)。 たとえば、0x9Fは通常、0x0000009fとして文書化され、0xAは0x0000000Aとして文書化されます。 この記事のサンプル イベント データの場合、"159" は0x0000009fに変換されます。
16 進数の値を特定したら、次の参照を使用してトラブルシューティングを続行します。
- Stop エラーまたはブルー スクリーン エラーに対する高度なトラブルシューティング。
- バグ チェック コード リファレンス。 このページには、さまざまなバグ チェック コードに関するドキュメントへのリンクが記載されています。
- カーネルモードのブルースクリーンクラッシュをデバッグする方法(初心者向け)。
シナリオ 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 を生成しますが、 BugcheckCode と PowerButtonTimestamp の値は 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 があります。 Crash ダンプの初期化に失敗しました!。 このイベントは、構成されたダンプ ファイルなしでコンピューターが起動した場合に発生する可能性があります。 既定のダンプ ファイルはページ ファイルです。
そのため、予期しない再起動が発生し、イベント ID 41 のすべての値が 0 である場合、volmgr によってイベント ID 46 があるかどうかを確認します。 その場合は、ページファイルの構成を確認します。 バグチェックのために予期しない再起動が発生した可能性がありますが、システムはイベント ID 41 でバグチェックの種類を書き込むことができず、メモリ ダンプも生成できませんでした。 コンピューターの起動時 Event ID 46 を確認する
通常、このシナリオで説明されている現象は、ハードウェアの問題を示しています。 問題を特定するには、次の手順を実行します。
- オーバークロックを無効にします。 コンピューターでオーバークロックが有効になっている場合は、無効にします。 システムが正しい速度で実行されるときに問題が発生することを確認します。
- メモリを確認します。 メモリ チェッカーを使用して、メモリの正常性と構成を確認します。 すべてのメモリ チップが同じ速度で実行されていること、およびすべてのチップがシステムで正しく構成されていることを確認します。
- 電源を確認します。 電源に、インストールされているデバイスを適切に処理するのに十分なワット数があることを確認します。 メモリを追加した場合、新しいプロセッサをインストールした場合、ドライブを追加した場合、または外部デバイスを追加した場合、このようなデバイスでは、現在の電源が一貫して提供できるよりも多くのエネルギーが必要な場合があります。 コンピューターへの電源が中断されたためにコンピューターログイベントID 41が記録された場合は、バッテリバックアップ電源などの無停電電源装置(UPS)を取得することを検討してください。
- 過熱を確認します。 ハードウェアの内部温度を調べ、過熱コンポーネントがないか確認します。
- コンピューターが物理マシンの場合は、コンピューターが応答していないと検出された自動サーバー回復 (ASR) ソフトウェアによって再起動された可能性があります。
- システムが Hyper-V 仮想マシン (VM) で実行されていて、クラスター化された環境に含まれていない場合は、Hyper-V ハートビート機能によってシステムが再起動された可能性があります。 この機能が有効になっていて、ホストが VM からのハートビートを検出しない場合 (応答性が高くない可能性があります)、Hyper-V は VM を再起動します。
- Hyper-V クラスター環境で問題が発生した場合、この問題は仮想マシンの 有効なハートビート監視 オプションに関連している可能性があります。 クラスター環境で実行されている仮想マシンから完全なメモリ ダンプ ファイルを取得しようとすると、 Corrupted メモリ ダンプ ファイルを参照してください。
- VMWare VM で問題が発生した場合は、VMWare のハートビート機能に関連しているか、VM がサード パーティのクラスターの一部である可能性があります。
- アプリケーション ログとシステム ログの両方で、シャットダウン時間 (イベント ID 6008 から取得) の前に疑わしいイベントがないか確認します。
これらのチェックを実行しても問題を特定できない場合は、システムを既定の構成に設定し、問題が引き続き発生するかどうかを確認します。
Note
バグ チェック コードを含む Stop エラー メッセージが表示されるが、イベント ID 41 にそのコードが含まれていない場合は、コンピューターの再起動動作を変更します。 これを行うには、次の手順を実行します。
- [マイ コンピューターを右クリックし、Properties>Advanced システム設定>Advanced を選択します。
- [ Startup and Recovery セクションで、 Settings を選択します。
- 自動再起動チェック ボックスをオフにします。
詳細
イベント ID の詳細 41
カーネル電源イベント ID 41 エラーは、コンピューターがシャットダウンするか、予期せず再起動したときに発生します。 Windows ベースのコンピューターが起動すると、コンピューターが正常にシャットダウンされたかどうかを確認するチェックが実行されます。 そうでない場合は、カーネル電源イベント ID 41 メッセージが生成されます。
イベント ID 41 は、Windows が正常にシャットダウンできなくなる予期しない事態が発生したことを報告するために使用されます。 何が起こったかを明示的に定義するのに十分な情報がない可能性があります。 詳細については、「 Kernel Power Event ID 41 を参照してください。
- ログ名: システム
- 製品: Windows オペレーティング システム
- ID: 41
- ソース: Microsoft-Windows-Kernel-Power
- レベル: 重大
- バージョン: 6.1
- メッセージ: システムは、最初にクリーンにシャットダウンせずに再起動しました。 このエラーは、システムが予期せず応答を停止した場合、クラッシュした場合、または電源が失われた場合に発生する可能性があります。
Note
.evtx ファイルに表示される時間は、システムの時刻に合わせて調整されます。 サーバーのタイム ゾーンを確認します。
- イベント ID 41: このイベントは、Windows が完全なシャットダウンなしで再起動したことを示します。
- イベント ID 1074: このイベントは、アプリケーションがシステムのシャットダウンまたは再起動を担当するときにログに記録されます。 また、 Start メニューを使用するか、Ctrl + Alt + Del キーを押して、ユーザーがシステムを再起動またはシャットダウンしたタイミングも示します。
- イベント ID 6006: このイベントは、Windows が適切にオフになっていることを示します。
- イベント ID 6008: このイベントは、不適切なシャットダウンまたはダーティ シャットダウンを示します。 最新のシャットダウンが予期しない場合にログに記録されます。
コンピューターがシャットダウンする直前に、 shutdown.exe
は、カスタム メッセージと理由コードと共に、Source=User32 とイベント ID 1074 で Windows システム ログにシャットダウン イベントを記録します。
イベント ログは、 shutdown.exe
からトリガーされた再起動が保留中であることを通知する唯一の方法です。 このイベントには、ユーザー名と、 shutdown
コマンドが発行された日時も記録されます。
shutdown.exe
を使用してサーバーを再起動する場合、シャットダウン プロセスでは通常、実行中の各サービスが停止する時間を確保するために 30 秒が許可されます。 サービスはアルファベット順にシャットダウンされます。 NET STOP
またはSC
を使用して、特定の順序でサービスを手動で停止すると、少し速くなる場合があります。
ブートステータスファイル(6番目のウィンドウ内部から)
Windows では、起動状態ファイル (%SystemRoot%\Bootstat.dat) を使用して、スタートアップやシャットダウンなど、システム ライフ サイクルのさまざまな段階で進行したという事実を記録します。
これにより、ブート マネージャー、Windows ローダー、およびスタートアップ修復ツールは、異常なシャットダウンやシャットダウンの失敗を検出して、ユーザーの回復オプションと診断ブート オプション (最終既知の正常モードやセーフ モードなど) を提供できます。 このバイナリ ファイルには、システムがシステム ライフ サイクルの次のフェーズの成功を報告する情報が含まれています。
- ブート (正常なブートの定義は、前に説明した最後の既知の良好な状態を判断するために使用されたものと同じです)
- シャットダウン
- 休止状態からの再開または中断
ブート状態ファイルは、ユーザーが最後にオペレーティング システムを起動しようとしたときに問題が検出されたかどうか、および表示された回復オプションも示します。これは、ユーザーが問題を認識し、アクションを実行したことを示します。 ntdll.dllのランタイム ライブラリ API (Rtl) には、Windows がファイルの読み取りと書き込みに使用するプライベート インターフェイスが含まれています。 BCD と同様に、ユーザーが編集することはできません。
シャットダウンについて
シャットダウンが開始されると、Windows はユーザー インターフェイス (UI) スレッドを持つ実行中のすべてのアプリケーションにWM_QUERYENDSESSION メッセージを送信します。 このメッセージは、保存されていないデータを保存し、正常に終了するようにアプリケーションに求めます。 アプリケーションが特定の制限時間内にメッセージに応答しない場合、Windows はアプリケーションに WM_ENDSESSION メッセージを送信し、アプリケーションを直ちに終了します。
すべてのアプリケーションがWM_QUERYENDSESSION メッセージに応答し、正常に終了した場合、Windows はシステム イベント ログにクリーン シャットダウン イベントを記録します。 アプリケーションがメッセージに応答しない場合や異常終了した場合、Windows はダーティ シャットダウン イベントをシステム イベント ログに記録します。
予期しないシャットダウンは、主にオペレーティング システム外のコンポーネントによって発生します。
ダーティ シャットダウンとは、適切なシャットダウン プロセスを実行せずにコンピューター システムをシャットダウンする場合です。 これは、電源が突然切れた場合、または電源ボタンを押したままにしてコンピューターが強制的にシャットダウンされた場合に発生する可能性があります。 ダーティ シャットダウンは、データの損失や破損を引き起こす可能性があり、起動の問題につながる可能性もあります。
ダーティ シャットダウン カウント レジストリは、Windows レジストリのレジストリ キーであり、適切なシャットダウン プロセスを経ずにコンピューター システムがシャットダウンされた回数を追跡するために使用されます。 このキーは、起動の問題のトラブルシューティングを行い、システムの電源が正しくオフにされていないかどうかを特定する場合に役立ちます。
また、次のレジストリ キーのすべての値 (DirtyShutdown、LastAliveStamp、TimeStampInterval など) をクリアすることもできます: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability
。 これは、予期しないシャットダウン後に Shutdown イベント トラッカーが表示されないようにするのに役立ちます。