短期集中連載

10年を超える定番クリーナー「CCleaner」を10倍使いこなす 第4回

システムの不要ファイル・レジストリエントリをクリーニング

「CCleaner」

 本連載では、定番クリーニングソフト「CCleaner」の機能を紐解き、各項目が実行しているクリーニングの対象を詳細に解説していく。今回はWindowsが作成する不要ファイルなどをターゲットにした“システム”カテゴリーの具体的な項目を解説しよう。

システムの不要ファイルを削除

 前回に引き続き「CCleaner」でクリーニングできる項目を個別に解説しよう。今回の“システム”カテゴリーは、Windowsが作成する基本的な不要ファイル・情報を対象にクリーニングを行う項目が並んでいる。最初の“ごみ箱を空にする”は文字通り、“ごみ箱”という特殊フォルダに移動したファイルやフォルダの削除を行うというもの。基本的なレベルなので詳細は割愛してもいいだろう。

一時ファイル

“一時ファイル”は、環境変数“TEMP”および“TMP”で指定したフォルダ内に生成される一時ファイルやフォルダを対象にクリーニングを実行する

 “一時ファイル”は、環境変数“TEMP”および“TMP”で指定されたフォルダに、OSやアプリケーションが生成した一時(テンポラリ)ファイルを削除する項目である。ただし、各環境変数はサインインしたユーザーごとに異なるユーザー環境変数と、各ユーザーが参照するシステム環境変数で異なる値が設定されており、前者は“%LOCALAPPDATA%\Temp”フォルダ、後者は“%SystemRoot%\TEMP”フォルダを使用する仕組み。なお、“%SystemRoot%”は通常“C:\Windows”フォルダを指す環境変数だ。

 検証ではこのように、各環境変数を参照して一時ファイルの削除が実行されることを確認した。なお、システム環境変数の“TEMP”および“TMP”を変更していても、“C:\Windows\Temp”フォルダ以下の一時ファイルは削除対象となる。

 また、「CCleaner」の初期設定では、“オプション”の“拡張設定”から参照できる“ウィンドウズの一時ファイルのうち、24時間を経過したもののみ削除”がチェックされているため、現在稼働中のアプリケーションや機能が利用する一時ファイルの大半が削除対象外となる。また、アクセス権がないファイル・フォルダはそもそも削除できないので、さほど神経質にならずクリーニングを実行して問題ないだろう。

クリップボード

 Windows上で文字列や画像ファイルなど、各種データのコピー&ペーストを実現するクリップボード機能は以前から搭載されている。クリップボードに大容量のデータが格納されると、新たなデータがクリップボードに上書きされるまで、同データをメモリ上に保持しなければならない。Windows 9x時代はクリーニングの重要項目に数えられたが、メモリ管理方法が異なる現在のWindowsでは、さほど重要ではないだろう。

 Windows XP以前は、クリップボードの内容を確認する「clipbrd.exe」が用意されていたが、Windows Vista以降は削除されているため、その内容を確認することは基本的にできない。「Process Monitor」で動作を検証しても具体的なアクションは実行されていないためロジックは不明だが、本項目のクリーニングを実行することで、クリップボードの内容は空になる。クリップボード履歴を管理するなど特別な理由がなければ、本項目は選択しておいても構わない。

メモリーダンプ

 Windowsはシステムがハングアップすると、現在のメモリ内容をダンプファイルとして出力する機能を備えている。これは“クラッシュダンプ”と呼ばれることもあり、アプリケーションのデバッグやエラー情報の送信に用いられるが、ソフトウェア開発に携わらない場合、無用の長物だ。

 本項目では一連のメモリダンプファイルの削除を実行するものだが、その対象は多岐にわたる。「CCleaner」ではカーネル情報を含むダンプファイルとして“%SystemRoot%\memory.dmp”ファイルと、読み込まれたデバイスドライバー情報などで構成されたミニダンプファイルを格納する“%SystemRoot%\Minidump”フォルダ、そして各アプリケーションがハングアップした際に生成したダンプファイルを格納する“%LOCALAPPDATA%\CrashDumps”フォルダが削除対象だ。

 Microsoftはこれらのエラー情報を元に、デバイスドライバーの安定性向上などにつながるテレメトリーデータを収集し、OSやアプリケーションの完成度を高めるため利用するという。そのため後述する“ウィンドウズエラー報告”と共に、クリーニング対象から外すかどうかは個人のポリシーに応じて取捨選択してほしい。

Windowsの“起動と回復”ダイアログにある“システムエラー”セクションで、メモリダンプに関する設定が行える
“%SystemRoot%\Minidump”フォルダには、Windowsがハングアップした際に生成されるミニダンプファイルが格納されている

CHKDSKコマンドのフラグメント

 Windowsは以前からディスクドライブの整合性を維持するため、エラーを検出するスキャンディスクという機能を備えてきた。特定のエラーが発生すると、破損部分を“*.chk”ファイルとして出力し、ディスクドライブ全体の維持を優先している。以前は“破損ファイル”という呼称が用いられていたが、Windows 8.1では“回復されたファイルの断片”に変更されている。

 同ファイルを元に復元処理を行うオンラインソフトも存在するが、そのまま破棄してしまう方が大勢だろう。「CCleaner」は“%SystemRoot%\*.chk”を対象に削除処理を行っているので、これを利用するオンラインソフトをお使いの場合などはクリーニング対象から外しておくとよい。

ウィンドウズ ログファイル

Windowsフォルダに対して“*.log”ファイルの検索を実行した状態。このように多くのログファイルが作成されている

 大半のアプリケーションは、自身の動作を記録するログ情報を残すのが一般的だが、Windowsも数々のシステムコンポーネントがログをファイルとして残している。本項目は各種フォルダに散らばるログファイルをまとめて削除するというものだ。

 今回の執筆にあたって調べたところ、削除対象となるフォルダは数百箇所以上に及び、各フォルダに格納された*.log/*.lo_/*.old/*.bak/*.txtといった拡張子をもつファイルが削除対象となった。すべてを掲載することはできないため、以下に主な削除対象フォルダをまとめたのでご覧頂きたい。なお、“※”が付いた項目ではサブフォルダのログファイルも含む。また、ここで削除されるのはあくまでもログファイルであり、Windowsの「イベントビューア」で確認できるイベントログは対象外だ。

  • %ProgramData%\Microsoft\Dr Watson
  • %LOCALAPPDATA%\Microsoft ※
  • %LOCALAPPDATA%\Microsoft\Windows ※
  • %LOCALAPPDATA%\\MigWiz
  • %APPDATA%\Roaming\Microsoft\Windows ※
  • %SystemRoot%
  • %SystemRoot%\debug
  • %SystemRoot%\Inf
  • %SystemRoot%\Logs ※
  • %SystemRoot%\Microsoft.NET ※
  • %SystemRoot%\Panther ※
  • %SystemRoot%\Performance\WinSAT
  • %SystemRoot%\security\logs
  • %SystemRoot%\ServiceProfiles\LocalService\AppData ※
  • %SystemRoot%\ServiceProfiles\NetworkService\AppData ※
  • %SystemRoot%\SoftwareDistribution
  • %SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft ※
  • %SystemRoot%\System32\wbem\Logs
  • %SystemRoot%\SysWOW64\config\systemprofile\AppData\Local\Microsoft ※
  • %SystemRoot%\SysWOW64\wbem\Logs

 Windowsが安定動作している場合は削除対象に加えてもよいが、何らかのトラブルが発生している場合、ログファイルは貴重な情報となるので、場面に応じて削除すべきだろう。

ウィンドウズ エラー報告

蓄積した問題レポートの送信確認を求めるダイアログ。“ウィンドウズ エラー報告”では問題レポートに含まれるメモリーダンプファイルなどが削除対象となる

 本項目は、Windowsの「Windows エラー報告」機能に関するもので、Windows Vista以降が対象となる。OSやアプリケーションがクラッシュした際、前述のダンプファイルに加えて個別のメモリダンプファイル、レポートファイルや情報をまとめたXMLファイルが生成される。この問題レポートは“%ProgramData%\Microsoft\Windows\WER\ReportQueue”フォルダや“%LOCALAPPDATA%\Microsoft\Windows\WER\ReportArchive”フォルダに格納されている。

 「Windows エラー報告」とは、これら情報をユーザーの選択に応じて、Microsoftのサーバーに送信するというものだ。前述の通りテレメトリーデータとして役立つものの、個人のポリシーによって取捨選択してほしい。さらに、問題レポートを送信しない場合は、ローカルグループポリシーエディターやレジストリ編集で、「Windows エラー報告」機能自体を無効にすることをお勧めする。

DNSキャッシュ

DNSキャッシュは「ipconfig /displaydns」で確認可能。また、「CCleaner」を使わずともDNSキャッシュは「ipconfig /flushdns」で削除できる

 たとえばWebブラウザーで任意のサイトにアクセスする際、DNSサーバーにアクセスしてURLのドメイン名からIPアドレスを検索している。この仕組みをDNS解決と言うが、Windowsには不要な検索処理を軽減するため、DNS解決情報をキャッシュとして保持する仕組みが備わっている。キャッシュ情報はWindowsの「ipconfig」コマンドで確認や削除できるが、本項目は同キャッシュがクリーニング対象。

 必ずしも削除対象に加える必要はないが、サーバー側のIPアドレス変更がDNSサーバー群に浸透するのが遅い場合は、同キャッシュをクリアすることで接続可能になる場合もある。なお、“%SystemRoot%\System32\drivers\etc\hosts”ファイルで定義したホスト情報は削除対象とはならない。

フォントキャッシュ

 古いWindowsに大量の日本語フォントをインストールすると、動作パフォーマンスが低下するのは有名な話だ。そのため、参照したフォントに対するキャッシュを作成する仕組みが備わるようになったが、本項目はそのキャッシュファイルが対象。具体的には下記リストのファイルを削除している。

  • %SystemRoot%\System32\FNTCACHE.DAT
  • %LOCALAPPDATA%\GDIPFONTCACHEV1.DAT
  • %SystemRoot%\ServiceProfiles\LocalService\AppData\Local\FontCache*.dat

 第3回で紹介した“サムネイルキャッシュ”と同じく肥大化しがちなものの、削除直後はフォントが正しく表示されないといったトラブルが希に発生するため、“一時ファイル”のように定期的な削除はあまりお勧めしない。

スタートメニューのショートカット

スタート画面やアプリビューに用いられる各ショートカットファイルの中から、孤立したものがクリーニング対象となる

 本項目はアプリケーションのアンインストーラーが正しく削除せず、孤立した状態にあるスタートメニューのショートカットファイルを対象にクリーニングを実行する。“%APPDATA%\Microsoft\Windows\Start Menu”および“%ProgramData%\Microsoft\Windows\Start Menu”フォルダ以下のショートカットファイルが対象だ。

 具体的には各ショートカットファイルを1つずつ精査し、リンク先となる実行ファイルが存在するか確認を行っている。さまざまなアプリケーションのインストール・アンインストールを繰り返しているユーザーには、有益なクリーニング項目となるだろう。

デスクトップのショートカット

デスクトップだけでなく、クイック起動バーやタスクバーのピン留めといったショートカットファイルもクリーニング対象だ

 こちらも“スタートメニューのショートカット”と同じく、孤立した状態にあるショートカットファイルがクリーニング対象。単に検索対象となるのがデスクトップに変わるだけだ。

 「Process Monitor」で動作を確認すると、デスクトップ上にあるフォルダ内や、クイック起動バーが参照する“%APPDATA%\Microsoft\Internet Explorer\Quick Launch”フォルダも検索対象。さらに後者のフォルダ以下には、タスクバーのピン留めを管理する“User Pinned\TaskBar”フォルダも存在する。

次回予告

 項目が多いため少々長くなってしまったが“システム”カテゴリーの説明はこれで終了。次回は“拡張設定”について解説する。興味をもたれた方はぜひご覧いただきたい。

(Cactus:阿久津 良和)