サービス

今ホッテントリで話題になっている、全力HPさんの「Windows XPの起動時の長いディスクアクセスは、WindowsUpdateの履歴が溜まりすぎていたせいだった?!」は、WindowsVistaや7でも行える技なのか、そして有効なのかどうなのか、が非常に気になったので検証してみました。

結果

Windows 7/Vistaでも、多少操作方法は違うがこの方法は実行可能。
しかしdatastore.edbに大量のフラグメントが発生していない限りは、肥大化していても効果はそんなに大きくないと思われる。しかしセキュリティツールの保護対象からdatastore.edbを除外すると、かなりの効果がある。

XPユーザーも、datastore.edbをセキュリティー保護対象から外す技はかなり有効。

 

検証にあたって

  1. Microsoftのサポートページを読んだが、Vista・7向けの資料は発見できなかった。
    XP向けの情報はここ
  2. 色々検索してみたけど、それらしき事をやっている・紹介してる人はいない。
    (これ書き終わってから検索したら、本日付で大量に出てきた。
     考える事はみんな同じだ(^_^;)
  3. 停止サービスの名前は違うが、Vista/7でも一連の操作は問題なく行える。
    このページ内でもVista/7用の手順紹介
  4. Vista、7では行う必要は無いって意見が多い。確かにその通り、効果は少な目。
  5. 後半で説明する「%windir%\SoftwareDistribution\Datastore\」フォルダの中身をアンチウイルスソフトのスキャン対象から外すってのは、セキュリティ的に一抹の不安はあるが、かなり有効。

Windows7・Vistaでのdatastore.edb再作成方法

注意)システムフォルダの中身を削除するので、それなりに危険な行為です。大切なデータのバックアップを行ってから実行しましょう。心配な人は実行しないでおきましょう。

Windows7/Vistaの場合、ファイル削除でUACが反応したり、WindowsUpdateで正規ユーザーかどうかの確認が入ったり、ちょっとだけ面倒ですがこの手順自体は問題なく実行出来るようです。

まずはWindowsサービス実行
Windowsサービスは「スタート」>「管理ツール」>「サービス」などから実行。
Win+Rキーから「services.msc」を実行してもOK

サービス
▲クリックすると全体表示: Windowsサービス画面。
Windows7/Vistaの場合、「Windows Update」を停止する。
Windows XPの場合は「Automatic Updates」「自動更新」などの名前のサービス名。

該当ファイルの削除
datastore.edb
▲クリックで拡大
エクスプローラーを開いて、「C:\Windows\SoftwareDistribution\DataStore」へ移動する。
フォルダ内のdatastore.edbと、Logsフォルダの中身を全て削除する。
(念のためLogsフォルダ自体は削除しなかった)
(ちなみにdatastore.edbは156MB、断片化数3)

削除
▲UACが反応して上記ダイアログが表示されますが、「続行」をクリック。
全部削除します。

Windowsサービスを元に戻す
「Windows Update」開始
▲Windowsサービスの「Windows Update」を右クリックして「開始」を選択。元に戻します。

 

注意!必ずWindows Updateを実行

Windows Update画面
▲コントロールパネルから「Windows Update」を開くと、「Windowsは最新の状態ではない」と警告が出ます。「更新プログラムの確認」をクリックしてWindowsが最新の状態である事を確認しましょう。
注意:この時点でUACが反応し「正規のWindowsユーザーか?正しいアカウント持っているならここクリックしろ」みたいなメッセージが出る場合があります。(ビックリし過ぎてスクリーンショット取り忘れ)
もちろん正規のWindowsユーザーならダイアログの指示通りに1~2回クリックすれば問題なくアップデートセンターに接続されます。シリアルキー入力とか複雑な手順は必要ありませんでした。

この手順実行前
▲クリックで拡大: この手順実行前。
大量のWindows Updateの履歴があります。
実行後
▲クリックで拡大: この手順実行後。
Windows Updateの履歴は空っぽになりました。

datastore.edb
▲datastore.edbのサイズは156MB(断片化3)から8.2MB(断片化0)へスリム化成功。

再起動後
▲再起動後も全く問題なし。

実行後、Windowsの起動は高速化出来たか?

私はわりと定期的にPCメンテを行っている事もあり、Windows起動速度自体に大きな速度差を感じる事は出来なかった。しかしそれなりに高速化が体感できた&別の高速化Tipsを発見できた。

メンテ前datastore.edb再作成
このページの内容
CCleaner・glary utilities
などを実行(別途実行)
さらにシステムドライブを
デフラグ(別途実行)
BIOS起動まで10秒10秒10秒10秒
BIOS通過10秒10秒10秒10秒
OS起動中23秒20秒21秒19秒
ログイン処理21秒19秒20秒17秒
タスクバーに常駐
アプリが出揃うまで
7秒1秒5秒4秒
合計71秒60秒66秒60秒
※注)表中の「CCleaner・glary utilitiesなどを実行」「さらにシステムドライブをデフラグ」は
以前に行った時のデータで、今回の「datastore.edb再作成」とは別に行ったもの

Windows再起動後、タスクバーに常駐アイコンが一瞬で登場するようになったのはビックリ。この結果から推測すると、、、、今回の高速化のキモはどうもセキュリティソフトの起動や常駐と関係あるんじゃないか?

と言う事で、datastore.edbをセキュリティーツールの常駐保護から外す事は可能なのか模索開始。

セキュリティソフトの監視対象からdatastore.edbなどを除外する

datastore.edb を含め「\SoftwareDistribution\Datastore\」フォルダ内のファイルは非常に断片化しやすい&肥大化しやすい。なのでセキュリティソフトの監視対象から該当ファイルを除外することで、セキュリティーツールの起動や常駐・WindowsUpdate時のレスポンスを軽くする事が出来る。

Aviraでの除外方法
▲クリックで拡大: 画面はAvira AntiVirでの除外設定追加方法

各種セキュリティーソフトで「スキャナ」や「常駐保護」、「ガード」などと言った項目の「例外設定」に「%windir%\SoftwareDistribution\Datastore\datastore.edb」他フォルダ内のファイルを設定してやる。この時フォルダ全体の指定は絶対しない事。ウイルスの攻撃対象となった時に侵入を防げなくなる。

マイクロソフトのサポートページにもこの方法は記載(このページ)されているので、そんなにトリッキーな方法では無いようだが、システムの一部を監視対象から外す事になるので少々危険がある事は自覚しておこう。

まとめ

フォルダ「%windir%\SoftwareDistribution\Datastore\」の中身を削除&再作成はWindows高速化にかなり効果があるが、その効果は肥大化したdatastore.edbをスリムにするよりも、フラグメント解消の方が大きそうだ。

そしてWindows 7/Vistaはアイドリング時にかなりしっかりとデフラグしてくれるので、datastore.edbのスリム化はそんなに神経質にならなくても大丈夫。
しかしセキュリティーツールの保護対象からdatastore.edbを除外する技は、意外と効果が大きそう。7/Vistaユーザーにはこの方法がお奨め(フォルダごと保護対象から外すのは超危険なので注意)

xxmactop

CS6(Adobe)、Windows専用アプリ店舗:Xmac.jp