Windowsのシャットダウン時、何をしているのか“のぞき見”したい!:山市良のうぃんどうず日記(136)(1/2 ページ)
Windowsのシャットダウンや再起動に異常に長い時間がかかるとき、電源ボタンを長押しするのは早計です。電源ボタンによるリセットが必要なハングアップ状態なのかもしれませんが、何か重要な処理を行っていて、それに時間がかかっているのかもしれません。今回は、Windowsがシャットダウン処理中に何をしているのか、知りたいときに利用できる2つの方法を紹介します。
システムアクティビティーの過度な監視は状況を悪化させることも
Windowsにおいて、システムのブート時、シャットダウン時、再起動時の状況を知る方法は、コンソール画面に「コンピューターの電源を切らないでください」とともに表示される簡単なメッセージや、起動後のイベントログを確認するぐらいしかありません。
「更新プログラム」のインストールに伴う再起動の場合、進行状況がパーセンテージで表示され、最初の30%が完了すると再起動され、その後、30%から100%まで進んで完了するという共通の挙動は、実際に目の前で何度か体験すれば分かると思います。
また、100%に到達する前に何らかの問題が発生して「元の状態に戻しています」と表示されたり、あるいは更新のための再起動や更新とは関係のないシャットダウンや再起動時に「Windowsを準備しています。コンピューターの電源を切らないでください」と表示されたりしたまま、数時間全く画面が変化しないといった経験をお持ちの方もいるでしょう。
筆者はそのような状況でも、数時間後には進むことを何度も経験しているため、物理コンピュータでは電源ボタンを長押ししてリセットするなんてことは決してしません(1日たっても変わらないならするでしょう)。
本連載第131回では、Microsoftが無料提供しているWindows Sysinternalsユーティリティーの一つ「Process Monitor(Procmon)」を使用して、Windows Updateによる更新後の再起動時に何をしているのかを調べる方法を紹介しました。
その際にも指摘しましたが、Procmonのようなツールを使用してシステムのアクティビティーを監視すると、さらに状況が悪化する(時間がかかる問題の調査のための負荷で、さらに時間がかかる)可能性があることに注意が必要です。
- 続・進まないWindows Update、やっぱり止まっていなかった(本連載 第131回)
連載第131回では、Procmonのブートログを使用して、Windows Updateによる再起動後、最初のブート時のアクティビティーを記録する方法を紹介しました。Windows Updateの問題に限らず、シャットダウンや再起動に異常に時間がかかる問題(特にWindows Serverの場合)の調査のためには、シャットダウン処理のイベントをトレースしたい場合があります。
今回は、Windowsのシャットダウン処理中のアクティビティーを記録する2つの方法を紹介します。今回もProcmonを使用しますが、「Sysmon」を使用する方法も紹介します。
- Process Monitor(Windows Sysinternals)
- Sysmon(Windows Sysinternals)
Procmonのブートログでシャットダウン中のイベントを記録する
Procmonの「Options」メニューから「Enable Boot Logging」を選択すると、次回ブート時にアクティビティーを記録するように構成できます(画面1)。
具体的には、ブート開始ドライバとして「Procmonドライバ」(%Windir%\System32\Drivers\PROCMON##.SYS)をシステムに登録します。このドライバは、次回ブート時の初期段階に読み込まれ、監視を停止するまでアクティビティーを記録します。監視の停止とは、次回のブート後にProcmonを開始するまで、あるいは次回ブート後のシャットダウン処理の最終段階でドライバがアンロードされるまでになります。
連載第131回で紹介した方法は、前者の方法です。これを図示したものが以下の図1になります。
Procmonでブートログを有効化した後、Windows Update(あるいは次回のブートに影響するかもしれない何らかの操作)を実行して再起動すれば、次回ブート時のアクティビティーを記録できます。次にProcmonを開始したときには、ブートログを変換するように指示され、変換後にログを参照できるようになります。この方法では、シャットダウン時のアクティビティーは何も記録されないことに留意してください。
シャットダウン時のアクティビティーを記録するには、Procmonでブートログを有効化してから、次回ブート後にProcmonを開始せず、シャットダウンや再起動まで進みます。これにより、Procmonドライバがブート時に読み込まれてから、シャットダウン処理の最終段階でドライバがアンロードされるまでのアクティビティーを記録できます(図2)。その後、次回Procmonを開始したときに、ブートログを変換するように指示され、変換後にログを参照できるようになります。
例えば、Procmonの「Tools」メニューの「Process Tree」を利用すると、シャットダウンの最後の方まで動作していたアプリケーションのプロセスを特定して、トレース結果にフィルターを追加できます(画面2)。
トレース結果の詳細を調査するのは難解ですが、「Process Activity Summary」やその他のツールを利用することで、プロセスのリソース消費状況をタイムラインで確認したり、プロセスのファイルやレジストリ、ネットワークに対するアクティビティーを確認したりできます(画面3)。
シャットダウン処理中に影響するかもしれない操作を実行する場合は、ブートログを有効化してから次のブート後、シャットダウンや再起動を開始する前に行います。なお、シャットダウン時のアクティビティーを記録する場合、ブートログを有効化してから1度目のブート時のアクティビティーは記録されますが、2度目のブート時のアクティビティーは記録されないことになります。
ブート直後からシャットダウン最終段階までのアクティビティーを記録する場合、稼働時間が長いとそれだけログサイズが膨大になり、Procmonで読み取るための変換にも時間がかかります。先に指摘したように、アクティビティーの過度な監視は、システムのパフォーマンスに大きく影響する可能性があることに十分に留意してください。システムの問題がブート中、またはシャットダウン中にあることが確実で、どうしても原因を究明したい場合に利用するとよいでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 特集「Windows Server 2008/2008 R2 サポート終了対策ポータル」
- 現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第
マイクロソフトが提供する無償の脆弱(ぜいじゃく)性緩和ツール「Enhanced Mitigation Experience Toolkit(EMET)」。その次期バージョン「EMET 5.5 Beta」がリリースされました。今回は、EMETのサポートポリシーに関する注意事項、およびEMETのこれまでの実績を解説します。 - もっと新しいエメット(EMET 5.2)さん、リ・リリース
2015年3月に「EMET 5.2」が公開されました。実は、今公開されているEMET 5.2は“二度目”のリリースです。数日で差し替えられたEMET 5.2、いったい何があったのでしょうか? - さらに新しいエメット(EMET)さんにもご用心!
マイクロソフトの脆弱性緩和ツール「EMET」の最新バージョン「EMET 5.1」がリリースされました。本連載ではEMET 5.0の不具合をいくつか指摘しましたが、さて、EMET 5.1は皆さんにお勧めできるのでしょうか。 - エメット(EMET)さん、破れたり
「Enhanced Mitigation Experience Toolkit」(EMET)は、Windowsやアプリケーションに存在する未パッチの脆弱性を悪用した攻撃を検出、阻止してくれる“かもしれない”、脆弱性緩和ツールです。今回は、この“かもしれない”ということがよく分かる実証実験にお付き合いください。