Windows ホームディレクトリの AppData 配下にいる Roaming / Local / LocalLow って何ぞ


まとめ

ユーザホームディレクトリの AppData 配下には Roaming Local LocalLow フォルダがある。

違いは以下。

フォルダ ローミング対象 整合性レベル 説明
Roaming Yes Medium (中) Active Directory などのドメイン環境で、ユーザーがログインしたPC環境に設定が同期される
Local No Medium (中) 通常のアプリケーションが利用する(異なるPCで環境の共有が不要な)データ
LocalLow No Low (低) 信頼度が低いアプリケーションが利用する(異なるPCで環境の共有が不要な)データ


AppData\Roaming

ドメイン環境に所属するPCにおいて、「ローミング・ユーザー・プロファイル」が設定されている場合にサーバーと同期される。

ユーザーがログオフした際にRoaming フォルダ内のファイルがサーバへコピーされ、別のPCでログインした際にそのデータがダウンロードされる。これにより、ユーザーがどのPCからログインしても、同じ設定でアプリケーションを使えるようになる。

主に、個人のアプリケーション設定データが格納される。 ユーザーとともに移動するには負担となるサイズの大きなファイル、キャッシュやログファイルなどは Local フォルダを利用する。


AppData\Local

ローミング対象外(別のPCでログインした際に引き継ぐ必要のないデータ)のファイルを格納する。

ユーザー単位でインストールされたアプリケーションの実行ファイルが配備されることもある(Roaming に配備されるケースもある)。


AppData\LocalLow

信頼度の低いアプリケーション用のフォルダ。

Windows Vista 以降、アプリケーションは、その信頼度に応じてランク付けされている。

  • 高 (High): システム管理者権限で動くプロセス
  • 中 (Medium): 一般ユーザーが普通に起動したプロセス
  • 低 (Low): 主にインターネット経由で動作するプロセス

低(Low)のプロセスはセキュリティ上の理由から、他のシステム領域にアクセスできないように制限されており、AppData\Local に書き込むことができない。

よって、このようなアプリケーションは AppData\Local の変わりに AppData\LocalLow を利用することになる。

AppData\LocalLow は、以下のように Low Mandatory Level となっている。

AppData> icacls LocalLow
LocalLow NT AUTHORITY\SYSTEM:(OI)(CI)(F)
         BUILTIN\Administrators:(OI)(CI)(F)
         XXXXX\xxxxx:(OI)(CI)(F)
         Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

Webブラウザの「保護モード」、インターネットからダウンロードされたファイルなどは AppData\LocalLow を利用する。


プラットホーム別の対比

user’s home directory

Platform Value Example
Linux $HOME /home/alice
macOS $HOME /Users/Alice
Windows {FOLDERID_Profile} C:\Users\Alice

user’s preference directory

Platform Value Example
Linux $XDG_CONFIG_HOME or $HOME/.config /home/alice/.config
macOS $HOME/Library/Preferences /Users/Alice/Library/Preferences
Windows {FOLDERID_RoamingAppData} C:\Users\Alice\AppData\Roaming

user’s config directory

Platform Value Example
Linux $XDG_CONFIG_HOME or $HOME/.config /home/alice/.config
macOS $HOME/Library/Application Support /Users/Alice/Library/Application Support
Windows {FOLDERID_RoamingAppData} C:\Users\Alice\AppData\Roaming

user’s local config directory

Platform Value Example
Linux $XDG_CONFIG_HOME or $HOME/.config /home/alice/.config
macOS $HOME/Library/Application Support /Users/Alice/Library/Application Support
Windows {FOLDERID_LocalAppData} C:\Users\Alice\AppData\Local