Windows OSの「temp」フォルダには、アプリやシステムで利用するさまざまな一時ファイルが作成される。ただ、デフォルトではシステムドライブに作成されるため、アクセスが集中しやすい。このtempフォルダを別のドライブに分離してパフォーマンスの低下を抑えるための設定方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Windows 10/Windows 11
Windows環境ではさまざまな「環境変数」が定義され、使われている(Tech TIPS「OSの種類によってバッチファイルの処理を切り替える方法」参照)。その中でもよく使われるのは「TEMP」もしくは「TMP」環境変数ではないだろうか。アプリケーションが一時的な作業用のファイルを作成する場合、通常はこのTEMP環境変数の指し示す場所(以下「tempフォルダ」と呼ぶ)に作られるからだ。
tempフォルダに作成されたファイルは、アプリケーションの終了時には削除されることになっている。だが、実際にはプログラムが終了しても削除されずに残っていることがある(特にログファイルなど)。tempファイルは、既存のファイル名とは重複しないような名前で新規作成されることになっているため、システムの起動や終了などを繰り返していると、tempフォルダの中に多くの一時ファイルが作成されてしまう。
tempフォルダの内容を確認するには、エクスプローラーや[ファイル名を指定して実行]ダイアログに「%temp%」と入力してtempフォルダを開くとよい(Tech TIPS「Windowsシステムのtempフォルダを簡単に開く」参照)。さまざまな一時ファイルが作成されていることが確認できるはずだ。
tempフォルダの内容は、基本的にシステムからサインアウトするときには全て削除しても構わないものである。だが、実際にはプログラムによって使われていたり、他のユーザーやサービスが使用したりしていて、削除できないことも多い。結果として、小さなサイズの一時ファイルが多数作成され、それらが削除されずに残ってしまい、空き領域を圧迫したり、システムの負荷を高くしたりしている可能性がある。
このような事態を少しでも改善する手段として、tempフォルダの場所(ドライブ)を変更するという方法がある。最近ではSSDが安価になってきているので、まずはtempフォルダだけでもC:とは別のSSDドライブなどに分散させてみよう。その後は、ページファイルやユーザードキュメントフォルダ、アプリのインストール先なども順次移動させるとよいだろう(ページファイルの移動についてはTech TIPS「ページファイルを別ドライブに移動してパフォーマンスを向上させる」参照)。
なおアプリによっては(プログラムのインストーラなど)、tempフォルダにファイルを展開してからシステムを再起動させ、再サインイン後にインストール処理を続行するようなものもある。そのため、tempフォルダをRAMディスクのような(再起動したら内容が消滅する)揮発性のドライブ上に作成することは避けた方がよい。
tempフォルダの実際の場所は、次の2カ所ある。それぞれ、システム全体で共通のTEMP/TMP環境変数と、ユーザーごとのTEMP/TMP環境変数によってその場所を指し示すことになっている(「TEMP」「TMP」の違いは後述)。
システムが起動した直後や、ユーザーがサインインしなくても実行されているサービスなどは、システムフォルダの下にあるtempフォルダを使っている。
だがユーザーがシステムにサインインした場合、そこから起動されるアプリなどは、ユーザーごとに固有のtempフォルダを利用する。
これらのフォルダはデフォルトで場所が分かれている。これらを1つのフォルダにまとめることも可能だ。例えば「E:\TEMP」フォルダだけを使うようにしておけば、tempフォルダのクリーンアップ作業などが簡単になる。ただし、一時的に作成されたファイルとはいえ、同一フォルダ内ではシステムやユーザーの間で相互にその内容が閲覧可能になるため、セキュリティを厳しくしている環境では別々のフォルダのままにしておく方が安全だろう。
Windows OSでは、tempフォルダの場所は「TEMP」と「TMP」という2つの環境変数で指定している。TEMPもTMPも用途は同じなので、通常はどちらも同じ内容(パス)をセットしておけばよい。
Windows OSの前身であるMS-DOSではTEMPをよく使っていた。一方、UNIXやLinuxなどでは「/tmp」フォルダを使っていた。そのため、どちらで開発されたアプリでも同じように動作するように、現在では2つの環境変数が用意され、利用されている。
tempフォルダの場所を移動して、システム全体で1カ所だけにするには、次のようにする。
1.は、システム起動時に使われるtempフォルダの場所を指定する環境変数である。これを設定することにより、C:\Windows\Temp以外の場所がtempフォルダとして利用されるようになる。
2.でユーザー環境変数のTEMP/TMPを削除しているのは、システム側のTEMP/TMP環境変数の内容がユーザー環境でもそのまま使われるようになるからだ(もし同名の環境変数があれば、ユーザー側の内容が優先される)。結果として、1.で設定したtempフォルダがユーザー環境でもそのまま利用されることになる。
以下、tempフォルダの環境変数を変更する手順を紹介する。
最初にtempフォルダとして利用するフォルダを作成し、アクセス権を設定する。指定したフォルダが存在しない場合は自動的に作成されるが、アクセス権やフォルダの構成などによっては作成に失敗することもあるので、あらかじめ作成しておく方がよい。
ここでは増設したE:ドライブ上に\TEMPというフォルダを作成して、そこをtempフォルダとして利用することにする(日本語や記号、空白文字などを含むフォルダ名はトラブルの元なので、避けること)。このパスは環境に応じて適宜変更していただきたい。
アクセス権は、AdministratorsグループとUsersグループ、およびビルトインのSystemアカウントなどに対して読み書きを許可すればよい。もっとも、C:とは別のドライブを使っているならもっと簡単に、「Everyoneに対してフルコントロールを許可」でよいだろう。
コマンドプロンプト上で作業するなら、次のようなコマンドを実行する。
cacls <tempフォルダのパス> /g everyone:f
caclsは、アクセス権を確認/設定するためのコマンドである(Tech TIPS「WindowsのcaclsコマンドでACLを編集する」と、Windows OS入門「アクセス制御リストACL」参照)。
コマンドラインの実行が難しい場合は、エクスプローラーで設定してもよい。E:ドライブのルート上にTEMPフォルダを作成後、次の画面のようにEveryoneに対してフルコントロールを許可しておく。
tempフォルダを用意できたら、次は環境変数を設定する。
環境変数の設定や確認を行うには、[システムの詳細設定]画面などから、[環境変数]の設定画面を開く必要がある。それには[Windows]+[R]キーを押して「ファイル名を指定して実行」ダイアログを開き、「sysdm.cpl」と入力して実行する(詳細はTech TIPS「コントロールパネルの[システム](相当)や[システムのプロパティ]を素早く開く方法」参照)。そして表示されたプロパティ画面から、[詳細設定]タブの[環境変数]ボタンをクリックする。
環境変数の確認画面が表示されたら、上にあるユーザー環境変数側で[TEMP]を選んで[削除]ボタンを押し、さらに[TMP]を選んでこれも[削除]する。
Copyright© Digital Advantage Corp. All Rights Reserved.