こんにちは、阿久津です。Windows 7を使っていますと、"何となく重い"と感じることはありませんか。OSが遅くなる要因としては、物理メモリ不足によるページファイル(仮想メモリ)の多用や、過度なディスクアクセスによる物理的なオーバーヘッドが発生しているなど、さまざまな理由が考えられます。しかし、ある程度メンテナンスした環境で発生しやすいのが、"バックグラウンドで何らかのプロセスが稼働"し、フォアグラウンドプロセスの動作を阻害しているケース。

Windows OSでは、スタートアップフォルダーやHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runキー、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runキーなどによるプログラムの自動起動ロジックが用いられてきました。しかし、最近とみに増えているのがタスクスケジューラを用いた起動方法です。

指定した時刻や一定時間毎に指定したプログラムを実行する同機能は、UNIX系OSのcronに似た環境を実現できますが、さまざまな「条件」を付加することで、柔軟なプログラムの起動を可能にしました。例えば一定時間アイドル状態が続くとタスクを起動する設定や、タスクを実行するためにスリープを解除する設定を組み合わせることで、必要な時に必要なプログラムの起動が可能になります。OS起動時からプログラムを起動するよりも効率的と言えるでしょう(図01)。

図01 タスクのプロパティダイアログ。<条件>タブではさまざまな条件を付加し、タスクの実行タイミングを調整できます

しかし、その一方で問題となるのがタスクの増加。自動起動よりもタスクスケジュールで管理した方が功利的なため、さまざまなアプリケーションを導入しているとタスクが増えてしまい、管理しきれなくなってしまいます。Windows 7ではタスクスケジューラを使って、タスクの管理を行いますが、MMC(Microsoft Management Console)ベースで動作する同プログラムは使い勝手が良いとは言えません(図02)。

図02 MMCベースで稼働するタスクスケジューラ。タスク名はアプリケーション側が自由に設定するため、把握しづらいのが現状です

そこでお勧めしたいのが、Sysinternalsの「Autoruns」。そもそもSysinternalsはMark Russinovich(マーク・ルシノビッチ)が立ち上げた企業です。Microsoftによる買収により、現在は同社の一部門として多くのトラブルシューティングツールを公開しています。Autorunsもその一つ。Windows OSが起動する際に自動実行されるプログラムを一覧表示し、不要なプログラムの起動を抑制することが可能です。今回はこの"何となく重い"を改善するチェックポイントとして、タスクの整理術を紹介しましょう(図03)。

図03 Autorunsを筆者のメインPCで起動した例。かなりの間メンテナンスをサボっていましたので、不要と思われるタスクが点在しています

まずはAutorunsを入手するためダウンロードページにアクセスし、「AutorunsとAutorunscのダウンロード」と書かれたリンクをクリックします。Internet Explorerの情報バーが現れたら、<ファイルを開く>ボタンをクリックしてください。関連付けられた圧縮伸長ツールが起動しますので、デスクトップなど任意のフォルダーに展開しましょう(図04~05)。

図04 ダウンロードページにアクセスし、リンクをクリックして最新版のAutorunsをダウンロードします。通知バーが現れたら<ファイルを開く>ボタンをクリックしましょう

図05 関連付けられた圧縮伸長ツールが起動しますので、任意のフォルダーに展開してください

展開先フォルダーを開きますと、「autoruns.exe」「autorunsc.exe」と二つの実行ファイルが確認できます。前者はGUI用ツールであり、後者はコマンドライン用ツールとなりますので、今回は前者をダブルクリックで実行してください。ライセンス条項を確認して同意すると各自動起動に登録されているプログラムの一覧が表示されます(図06~07)。

図06 展開先フォルダーを開き、「autoruns.exe」をダブルクリックします

図07 最初にライセンス条項が表示されます。内容を確認して問題がないようであれば<Agree>ボタンをクリックしてください

しかし、Autorunsの初期設定では、文字が小さいため見やすくありません。そこで<Options>メニューの<Font>から使用するフォントをメイリオに変更しましょう。筆者はフォントサイズも9ポイント程度に変更しています。これでAutoruns上に表示される情報が見やすくなりました(図08~10)。

図08 Autorunsが起動したら最初に<Options>メニューの<Font>をクリックします

図09 ダイアログが現れたら「Font」で「メイリオ」を選択し、「Size」を「9」に変更してから<OK>ボタンをクリックします

図10 これで使用フォントとサイズが変更され、見やすくなりました

それでは主目的であるタスクを管理する<Schedule Tasks>タブを開いてください。図11は特定のアプリケーションを導入していない環境のため、タスク数も数えられる程度。ご自身の環境や筆者の環境でAutorunsを実行した図03と比べてください。列挙されたタスクを無効にするには先頭のチェックボックスを外します。これでタスクが無効になりますが、削除する場合はタスクを選択して[Ctrl]+[D]キーもしくは[Delete]キーを押してください。これでタスクが削除されます。設定は即時反映されますので、作業を終えたら<×>ボタンをクリックしてAutorunsを終了させましょう(図11~12)。

図11 不要と思われるタスクのチェックボックスをクリックしてチェックを外せば、そのタスクが無効になります

図12 タスクを選択して[Ctrl]+[D]キーもしくは[Delete]キーを押せば、タスクを削除できます

整理のコツは、Description(説明)に表示されるタスクの説明と、Publisher(発行者)に表示されるベンダー名による取捨選択です。もっともWindows Media CenterのようにPublisherがMicrosoftでも、パフォーマンスに悪影響を与えるタスクも存在しますので、一つずつ確認しましょう。タスクをダブルクリックすればタスクスケジューラが起動しますが、同タスクが選択されないため意味をなしません。筆者はタスクを選択して[Alt]+[Enter]キーを押すと現れるプログラムのプロパティダイアログで確認しています(図13)。

図13 タスクを選択して[Alt]+[Enter]キーを押せば、タスクから起動するプログラムのプロパティダイアログが現れます

ひとまずサードパーティ製タスクだけを確認したい場合は、<Options>メニューの<Filter Options>を選択すると現れるダイアログで、<Hide Microsoft entries>を有効にしてください。これで、Microsoft製タスクが非表示となります。また、赤く表示されているタスクはファイルが存在しないなど、エラーが発生しているタスクを意味しますが、OSやネットワークの構成情報をファイルに出力するスクリプト「gathernetworkinfo.vbs」も赤くなっていることに首をかしげてしまうことでしょう(図14~15)。

図14 <Options>メニューの<Filter Options>を選択すると現れるダイアログ。<Hide Microsoft entries>をクリックしてチェックを入れたら<OK>ボタンをクリックします

図15 これでPublisherがMicrosoftとなっているタスクが非表示になりました

こちらはWindows OSのシステムコンポーネントに含まれるファイルのため、安全なファイルですが、このようなケースで確認したい場合はタスクに対して署名確認を行う[Ctrl]+[V]キーを試してください。Publisherの列に「(Verified)」と表示されMicrosoft製ファイルであることが確認できます。また、署名確認が行えなかった場合は「(Not verified)」と表示されますので、ファイル名やパスなどを参考に要不要を判断しましょう。ちなみにオプションダイアログには、最初から署名確認を行う<Verify code signatures>という項目が用意されていますが、こちらを有効にしますと全てのプログラムに対して署名確認が強制実行され、Autorunsの動作が緩慢になりますのでお勧めしません(図16)。

図16 タスクを選択して[Ctrl]+[V]キーを押せば、タスクに対する確認操作を行えます

今回はタスクを整理するためにAutorunsを用いましたが、各タブをご覧になると分かるように各runsキーやサービス、エクスプローラーやInternet Explorerのアドオンに関する取捨選択も可能です。Windows 7のパフォーマンスが低下する原因は環境によって異なりますので、Autorunsを用いて不要なプログラムが自動実行されていないか確認してください。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus