web-dev-qa-db-ja.com

Windowsの最後の再起動理由を取得する方法

最後のWindows再起動ソースに関する情報を提供するWindows API関数(存在する場合)とは何ですか。主に次の3つの原因が考えられます。

  1. コンピューターがブルースクリーンでクラッシュしました
  2. ユーザーまたはプログラムがコンピューターをシャットダウン/再起動した
  3. 失われた力

より詳細になればなるほど良くなります。ただし、少なくとも主な理由による理由を知る必要があります。

Windows VistaとWindows 7をサポートする必要があります。

回答:

その情報を取得するための直接的なAPIはないようです。代わりに、Windowsイベントログを収集する必要があります。システムの再起動情報は、イベントビューアー/ Windowsログ/システムにあります。イベントIDによって提供されるさまざまな情報は次のとおりです。

  • 6005:Windowsの起動
  • 6006:Windowsのシャットダウン(適切に)
  • 6008:Windowsのシャットダウン(予期せず)

電力損失とシステムクラッシュの違いはまだわかりませんが、良いスタートです。

53
Frederic

Event Log API をご覧ください。ケースa)(ブルースクリーン、ユーザーが電源コードを切る、またはシステムがハングする)ことにより、次回システムが適切に再起動されたときに「システム」イベントログにメモ(「システムが正しくシャットダウンしなかった」など)が残されます。上記のAPIを使用してプログラムでアクセスできるはずです(正直、私は使用したことがありませんが、動作するはずです)。

17

この 記事 は、最後の起動/シャットダウンの理由を見つける方法を詳細に説明しています。私の場合、これはWindowsが原因でしたSCCMローカルで無効にした場合でも更新をプッシュします。写真付きの詳細については記事を参照してください。ウェブサイト:

  1. を押す Windows + R Runダイアログを開くためのキー、eventvwr.msc、そして押す Enter

  2. UACのプロンプトが表示されたら、[はい](Windows 7/8)または[続行](Vista)をクリック/タップします。

  3. イベントビューアーの左ペインで、Windowsログをダブルクリック/タップしますそれを展開するには、Systemをクリックして選択し、(System、クリック/タップ現在のログをフィルター.

  4. 表示するシャットダウンイベントについて、以下の手順5または6を実行します。

  5. コンピューターのすべてのユーザーシャットダウンの日付と時刻を表示するには

    A)イベントソースで、ドロップダウン矢印をクリック/タップし、USER32ボックス。

    B)すべてのイベントIDフィールドに1074、次にクリック/タップ[〜#〜] ok [〜#〜]

    C)これにより、イベントビューアの中央ペインの上部にある電源オフ(シャットダウン)およびシャットダウンの種類のイベントのリストが表示されます。

    D)これらのリストされたイベントをスクロールして、シャットダウンタイプとして電源がオフになっているイベントを見つけることができます。日付と時刻、およびリストされている電源オフイベントごとにコンピューターをシャットダウンしたユーザーがわかります。

    E)手順7に進みます。

  6. コンピューターのすべての予期しないシャットダウンの日付と時刻を表示するには

    A)すべてのイベントIDフィールドに6008、次にクリック/タップ[〜#〜] ok [〜#〜]

    B)これにより、Event Viewerの中央ペインの上部に予期しないシャットダウンイベントのリストが表示されます。リストされたこれらのイベントをスクロールして、各イベントの日付と時刻を確認できます。

43