「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

Windows 10無償アップグレード開始前、Microsoftは「システムの圧縮機能によって、OS(=システムファイル)の使用領域を大幅に節約する」とアナウンスしていた。弊誌Windows 10大百科の執筆時は具体的な動作を確認できなかったが、調べてみるとコマンドラインからNTFS圧縮を実行する「Compact.exe」に気になるオプションが加わっていた。このコマンドを使ったシステム全体の圧縮手順を紹介しよう。

生まれ変わった「Compact.exe」

Microsoftの開発陣は2015年3月の時点で、圧縮済みシステムファイルから直接Windowsを起動する「WIMBOOT」の肥大化を避ける仕組みを加えると、公式ブログで表明している。これらは展開時に組み込む仕組みのため、一般的なスペックを備えるPCでは恩恵を受けることはできないと思われていた。

だが、システムファイルの圧縮に対しては後から適用する方法を用意している。それが「Compact.exe」だ。以前から存在するCompact.exeはNTFS上のファイルをコマンドラインから圧縮するものだが、Windows 10では新たなオプションが加わった。例えば「/EXE」は変更頻度が低い実行形式ファイルに対して、XPRESSやLZXといった圧縮アルゴリズムも適用する。

Windows 10の「Compact.exe」。「/EXE」や「CompactOs」といった新オプションが加わっている

この圧縮を一括実行するオプションが、「CompactOs」だ。サブオプションとしては、圧縮状態を確認する「query」、すべてのシステムファイルを圧縮する「always」、すべてのシステムファイルを圧縮解除する「never」がある。これらはWindows 10インストール後でも実行できるため、ストレージの空き容量に悩んでいる多くユーザーにとって有益だろう。

ただし、圧縮は伸長(解凍)とペアの存在だ。システムファイルを圧縮するということは、伸長処理もすべてのバイナリファイルに対して加わるため、必然的にパフォーマンスが落ちる。特にCPUパワーが乏しい場合は、体感的な速度低下は小さくないだろう。この点を鑑みて本Tipsを試してほしい。

システムファイルを圧縮する

操作自体は簡単だ。管理者権限でコマンドプロンプトを起動し、コマンドラインから「compact /CompactOS:always」と実行するだけでよい。ただし、進捗状況を示すプログレスバーなどは現れず、作業中はI/Oの負荷が大きいため、PCをそのまま放置できるタイミングで実行することをおすすめする。

「Win」+「X」キーを押すなどしてクイックアクセスメニューを開き、「A」キーを押すか<コマンドプロンプト(管理者)>をクリック/タップする

コマンドプロンプトが起動したら、「compact /CompactOS:always」と入力して「Enter」キーを押す

圧縮中のPC状態。I/O負荷はもちろんCPUリソースも半分以上を消費している

圧縮が完了すると、圧縮対象となったファイル数や全体の圧縮量と圧縮率を示すメッセージが現れる。今回試した環境では圧縮率「1.7対1」で、約3.5Gバイトのストレージ容量を空けることに成功した。

こちらは圧縮完了後のメッセージ。これでシステムファイルが常に圧縮された状態となる

ディスク全体の使用状況。メッセージどおり、空き容量が3.5Gバイトほど増えた

Windowsフォルダーのプロパティダイアログでも、「サイズ」と「ディスク上のサイズ」の違いが顕著だ

前述のとおり、「compact /CompactOS:query」と実行すれば、現在の圧縮状態を確認できる。圧縮はしたものの、全体のパフォーマンスが低下する場合は、「compact /CompactOS:never」で圧縮を解除すればよい。圧縮時と同等の時間を要するが、筆者の環境では問題なく元の状態になることを確認した。

管理者権限でコマンドプロンプトを起動し、「compact /CompactOS:query」と入力して「Enter」キーを押す。こちらは圧縮時の状態

圧縮を解除するには、「compact /CompactOS:never」と入力して「Enter」キーを押す。画面は圧縮解除を終えた直後の状態だ

阿久津良和(Cactus)