Windows 通过目录隔离模型实现:架构隔离 (32/64 位)、权限隔离 (系统级 / 用户级)、数据隔离 (机器全局数据 / 用户私有数据 / 低完整性数据)、UWP / 桌面应用隔离 Windows 关键目录‑环境变量对照表
Windows10 核心系统目录完整解构拆解
覆盖:
Program Files、Program Files (x86)、ProgramData、AppData(Roaming/Local/LocalLow)、Local\Programs、SystemApps、WindowsApps、System32、SysWOW64、WinSxS分析框架:底层原理|依赖文件|依赖关系|配套链|逻辑链路|边界
一、底层原理
Windows 通过目录隔离模型实现:架构隔离 (32/64 位)、权限隔离 (系统级 / 用户级)、数据隔离 (机器全局数据 / 用户私有数据 / 低完整性数据)、UWP / 桌面应用隔离。 关键底层机制:
- WOW64 重定向:64 位系统下 32 位进程访问
C:\Windows\System32会被自动重定向到SysWOW64;访问Program Files重定向到Program Files (x86)。 - ACL 安全描述符:不同目录预设不同 NTFS 权限,控制写入、读取权限,区分
Administrator/SYSTEM/普通用户。 - 环境变量映射:系统通过环境变量指向各个目录,程序禁止硬编码绝对路径。
- 完整性标签 (强制标签):
LocalLow目录设置低完整性级别,供沙盒、IE 低权限进程写入。 - 包虚拟化机制:UWP 应用使用
WindowsApps、SystemApps,受 Appx 包管理器托管,目录权限严格锁定。 - 组件存储 WinSxS:CBS 组件存储,存放多版本系统二进制,提供系统回滚、SFC 修复源。
Windows 关键目录‑环境变量对照表
底层访问入口,应用程序开发建议使用环境变量,禁止硬编码
C:\xxx绝对路径
环境变量 对应物理路径 %ProgramFiles%C:\Program Files %ProgramFiles(x86)%C:\Program Files (x86) %ProgramData%C:\ProgramData %APPDATA%%UserProfile%\AppData\Roaming%LOCALAPPDATA%%UserProfile%\AppData\Local无直接环境变量 %USERPROFILE%\AppData\LocalLow%LOCALAPPDATA%\Programs%UserProfile%\AppData\Local\Programs(用户级免管理员安装目录)%SystemRoot%\System32C:\Windows\System32 %SystemRoot%\SysWOW64C:\Windows\SysWOW64 补充常用配套环境变量
环境变量 对应物理路径 %USERPROFILE%C:\Users <当前用户名> %SystemRoot%C:\Windows %TEMP%/%TMP%%LOCALAPPDATA%\Temp当前用户临时目录小提示
LocalLow没有内置环境变量,代码中需要拼接:%USERPROFILE%\AppData\LocalLow- 在 cmd、PowerShell 直接
echo %变量名%即可解析查看真实路径。- 32 位 / 64 位进程受 WOW64 重定向影响,相同环境变量解析后实际访问物理路径会发生变化。
二、逐个目录拆解
1. C:\Program Files
- 底层原理:系统全局 64 位桌面应用默认安装位置;NTFS ACL:普通用户无写入权限,必须管理员权限才能新建 / 修改文件。
- 依赖文件:目录 ACL 安全描述符;环境变量
%ProgramFiles%;WOW64 重定向表。 - 依赖关系:安装程序需要管理员 UAC 提升;64 位进程直接访问;32 位进程会被 WOW64 重定向到
Program Files (x86)。 - 配套链:MSI 安装程序、exe 安装包默认目标路径;卸载信息写入
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall(机器全局卸载注册表)。 - 逻辑链路:安装包 UAC 提升 → 写入 ProgramFiles → 注册机器级卸载项;程序运行只读读取目录内 exe/dll。
- 边界
- 普通用户不能直接在此目录新建、修改文件;
- 32 位程序默认不会进来,受 WOW64 重定向拦截;
- 目录内程序属于机器级别,本机全部用户都可使用;删除目录内文件会触发应用损坏。
2. C:\Program Files (x86)
- 底层原理:64 位系统存放 32 位桌面应用;WOW64 重定向核心目标目录。
- 依赖文件:WOW64.dll 内核‑用户态重定向逻辑;环境变量
%ProgramFiles(x86)%。 - 依赖关系:32 位进程读取
%ProgramFiles%,操作系统自动替换为此路径;同样需要管理员权限写入。 - 配套链:旧版 32 位软件、MS Office32 位;卸载项同样存于 HKLM 机器注册表。
- 逻辑链路:32 位安装包 UAC 提升写入;32 位进程加载自身 dll;64 位进程访问该目录不会重定向。
- 边界
- 纯 32 位 Windows 系统不存在此文件夹;
- 64 位软件不会安装到此;手动硬编码路径绕过重定向会引发兼容性故障。
3. C:\ProgramData
- 底层原理:机器全局公共用户数据目录,对本机所有用户可见;对应旧版 Windows
C:\Documents and Settings\All Users。不存放程序 exe,存放配置、缓存、公共资源。 - 依赖文件:环境变量
%ProgramData%;NTFS ACL:普通用户可读,部分子目录需要管理员写入。 - 依赖关系:数据对本机全部用户共享;不属于任何一个特定用户。
- 配套链:服务程序、后台服务、杀毒软件公共配置;Windows 功能组件配置。
- 逻辑链路:安装时管理员写入公共配置;任意用户运行程序读取公共数据;用户个人配置严禁写这里。
- 边界
- 不是程序安装目录,不要放 exe 可执行文件;
- 用户没有修改权限;普通应用不要往根目录写文件,应创建自己的子文件夹;
- 重装系统该目录会被重置。
4. %UserProfile%\AppData\Roaming (%APPDATA%)
- 底层原理:用户漫游配置,设计用于域环境用户配置文件漫游;用户登录服务器会同步该目录到域控制器。存储该用户软件的个人配置、预设。
- 依赖文件:环境变量
%APPDATA%;用户配置文件 UserProfile 服务;域配置文件漫游组件。 - 依赖关系:仅当前登录用户拥有读写权限;其他用户无法访问;域环境下会网络同步;本地账户不会同步。
- 配套链:绝大部分桌面软件的用户配置;软件记住窗口布局、账号、偏好设置。
- 逻辑链路:软件运行时,以当前用户身份读写配置;域用户注销,系统把 Roaming 数据回写域服务器;异地登录拉取配置。
- 边界
- 存放小体积配置,禁止放大缓存、下载文件,域漫游会拖慢登录注销;
- 单机本地账户,漫游逻辑不生效,但软件依旧往这里写配置;
- 此目录数据跟随用户配置文件,删除用户会全部清空。
5. %UserProfile%\AppData\Local (%LOCALAPPDATA%)
- 底层原理:本机本地用户数据;不会域漫游同步;存放缓存、临时文件、大型本地资源。
- 依赖文件:环境变量
%LOCALAPPDATA%;用户配置文件服务;域漫游排除列表默认排除 Local。 - 依赖关系:仅当前用户读写;域环境登录不会网络同步此目录。
- 配套链:浏览器缓存、软件日志、缩略图缓存;用户级别免安装软件目录
Local\Programs。 - 逻辑链路:软件读写本地缓存;用户注销,数据保留在本机,不上传域控。
- 边界
- 域环境不会同步;换电脑该目录全部丢失;
- 可以存放较大文件;适合缓存、临时数据。
6. %UserProfile%\AppData\Local\Programs
- 底层原理:用户级别应用安装目录,不需要管理员 UAC 提升;普通用户权限即可写入;只对当前这个用户生效,其他本机用户看不到这个软件。
- 依赖文件:属于 Local 子目录;没有独立环境变量。
- 依赖关系:无管理员权限也可以安装;软件注册在HKCU 当前用户注册表,不在 HKLM 机器注册表。
- 配套链:大量 NSIS Inno Setup “仅为当前用户安装” 选项;微软商店部分用户级应用。
- 逻辑链路:安装包不请求 UAC;写入 Local\Programs;写入 HKEY_CURRENT_USER 注册卸载信息。
- 边界
- 其他 Windows 用户账户看不到此软件;
- 卸载信息存储于当前用户注册表;删除用户账户软件直接失效;
- 服务程序不能放这里,服务是系统全局,不绑定登录用户。
7. %UserProfile%\AppData\LocalLow
- 底层原理:低完整性级别目录;NTFS 强制完整性标签 = Low;供沙盒、受保护低权限进程读写。
- 依赖文件:NTFS 强制完整性安全标签;没有系统环境变量。
- 依赖关系:普通高完整性进程可以读;低完整性沙盒进程只能写 LocalLow,不能写入 Roaming/Local。
- 配套链:旧版 IE 沙盒、浏览器插件沙盒;部分沙盒化应用。
- 逻辑链路:低完整性进程,系统允许仅向 LocalLow 写入数据;阻止低权限进程篡改高完整性用户配置。
- 边界
- 普通桌面软件一般不使用;专门给沙盒进程;
- 域漫游也不会同步 LocalLow;
- 手动复制文件到此目录不会自动赋予 Low 完整性标签。
8. C:\Windows\System32
- 底层原理:64 位 Windows64 位系统核心二进制目录;内核模式驱动、系统 dll、系统 exe;WOW64 重定向源点。
很多人误区:System32 不是 32 位,Win10 64 位 System32 存放64 位组件。
- 依赖文件:大量 sys、dll、cpl、msc;CBS 组件存储 WinSxS 硬链接。
- 依赖关系:需要 TrustedInstaller 权限修改;普通管理员也没有完全写入权限。
- 配套链:SFC、DISM 系统修复;CBS 组件服务;Windows 功能启用关闭。
- 逻辑链路:系统启动加载 System32 内组件;WinSxS 通过硬链接映射文件到此;SFC 校验文件哈希。
- 边界
- 32 位进程访问 System32 被 WOW64 重定向到 SysWOW64;
- 用户不要手动修改里面任何文件;权限归 TrustedInstaller;
- 系统更新会替换这里的系统二进制。
9. C:\Windows\SysWOW64
- 底层原理:存放32 位系统 DLL、EXE,64 位操作系统的 32 位系统兼容层。
- 依赖文件:wow64.dll、wow64win.dll 重定向引擎。
- 依赖关系:32 位进程看到的 “System32” 物理上就是 SysWOW64。
- 配套链:旧版 32 位系统工具;32 位应用依赖的系统库。
- 逻辑链路:32 位应用加载系统 dll,实际读取 SysWOW64;64 位进程直接访问该文件夹不会重定向。
- 边界
- 纯 32 位 Windows 不存在 SysWOW64;
- 禁止手动拷贝 dll 到此目录,应当通过组件或者注册方式。
10. C:\Windows\WinSxS
- 底层原理:Windows Component Based Servicing (CBS) 组件存储;保存系统组件多版本副本;System32 下大量文件是来自 WinSxS 的NTFS 硬链接,不是复制副本。
- 依赖文件:CBS 数据库;manifest 清单文件;硬链接;DISM/SFC 工具。
- 依赖关系:TrustedInstaller 完全控制;普通管理员只读;磁盘占用大属于正常现象。
- 配套链:Windows 更新、SFC 修复、启用 Windows 可选功能、系统版本回滚。
- 逻辑链路:系统更新把新版本组件放入 WinSxS;通过硬链接投射到 System32;SFC 检测 System32 文件损坏,从 WinSxS 硬链接恢复。
- 边界
- 不要手动删除 WinSxS 里面文件,会直接系统损坏;清理必须使用
DISM /StartComponentCleanup; - 文件夹体积大属于设计使然;保存多个版本组件用于回滚;
- 里面大量硬链接,文件统计工具会重复计算占用。
- 不要手动删除 WinSxS 里面文件,会直接系统损坏;清理必须使用
11. C:\Program Files\WindowsApps
- 底层原理:UWP/MSIX 应用包存储;商店应用、部分系统内置应用;受 AppX 包管理器托管;ACL 严格锁定,普通用户无法浏览打开。
- 依赖文件:AppxDeploymentService 包部署服务;包清单 AppxManifest.xml。
- 依赖关系:SYSTEM 权限;普通用户拒绝访问;每个应用一个子目录版本化命名。
- 配套链:Microsoft Store;PowerShell Add‑AppxPackage / Remove‑AppxPackage。
- 逻辑链路:商店下载 msix 包 → 解压注册到 WindowsApps;包管理器控制生命周期。
- 边界
- 资源管理器默认拒绝访问;不要手动修改目录内文件;
- 每个应用多版本并存;卸载由 PowerShell/AppX 服务完成。
12. C:\Windows\SystemApps
- 底层原理:系统内置 UWP 包(开始菜单、设置、锁屏、系统 UI 组件);和 WindowsApps 机制相同,属于操作系统内置,不能随意卸载。
- 依赖文件:Appx 部署服务;系统启动必须依赖的包。
- 配套链:系统 Shell、设置应用;PowerShell 管理 Appx 包。
- 边界:属于操作系统核心,删除会导致开始菜单、设置崩溃。
三、配套链总览
- 安装程序分类
- 机器级安装(需要管理员 UAC):目标
Program Files / Program Files(x86);卸载注册表:HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall - 用户级安装(无需管理员):目标
%LOCALAPPDATA%\Programs;卸载注册表:HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
- Windows 可选组件管理配套
- GUI:控制面板 → 程序 → 启用或关闭 Windows 功能,读取 WinSxS 组件清单
- PowerShell
#安装可选组件
Enable‑WindowsOptionalFeature ‑Online ‑FeatureName XXXX
#关闭组件
Disable‑WindowsOptionalFeature ‑Online ‑FeatureName XXXX
- 底层依赖:
dism.exe、cbscore.dll,源来自 WinSxS 组件存储。
- 修复工具配套
sfc /scannow
DISM /Online /Cleanup‑Image /RestoreHealth
SFC 校验 System32 文件,修复源来自 WinSxS 硬链接库。
四、全局边界总览(高频踩坑)
- WOW64 重定向坑:64 位系统,32 位进程看到的 System32 物理是 SysWOW64;写程序不要硬编码路径,优先使用系统环境变量。
- 权限边界
- ProgramFiles、System32、WinSxS、WindowsApps:普通用户不可写,部分需要 TrustedInstaller 权限。
- AppData 下面全部目录:仅所属用户可读写。
- ProgramData:机器全局可读,写入一般要管理员。
- 漫游边界:
Roaming用于域同步;Local / LocalLow永远不漫游;单机本地账户漫游逻辑不生效。 - 文件存放边界
- 可执行 exe:放
ProgramFiles(机器)或者Local\Programs(用户)。 - 公共配置:
ProgramData。 - 用户个人配置:
%APPDATA%。 - 缓存大文件:
%LOCALAPPDATA%。 - 沙盒低权限:
LocalLow。 - 禁止:把用户配置写入 ProgramFiles、System32,现代 Windows 会触发文件虚拟化兼容层。
- 可执行 exe:放
- WinSxS 禁止手动删除;清理组件必须 DISM 命令。
- WindowsApps/SystemApps UWP 目录禁止手动增删文件,必须通过 AppX 包管理器 PowerShell。
- 用户配置文件删除,整个 AppData 全部清空;重装系统 ProgramData 重置。
Windows 目录隔离模型 完整解构拆解
模型定义:Windows 依靠NTFS 权限、WOW64 架构重定向、用户配置文件、完整性标签、UAC 文件虚拟化、AppContainer 包隔离一套组合机制,通过目录实现五大隔离:架构隔离 (32/64 位)、权限隔离 (系统全局 / 用户私有)、数据隔离 (漫游 / 本地 / 低完整性)、应用隔离 (UWP/MSIX)、兼容性隔离 (VirtualStore)。 分析框架:底层原理|依赖文件|依赖关系|配套链|逻辑链路|边界
一、底层原理
目录隔离模型不是单一组件,是多层防御叠加模型,分为 5 大隔离维度:
- 架构隔离(WOW64) 64 位系统同时运行 32/64 位程序;内核层拦截 32 位进程文件系统调用,透明重定向路径,防止 32 位程序加载 64 位系统 DLL;物理目录
Program Files/Program Files(x86)、System32/SysWOW64做物理分离。 - 权限‑ACL 隔离 NTFS 目录预设安全描述符 ACL,区分:
- 机器全局目录:
ProgramFiles、System32、ProgramData;普通用户只读,写入需要管理员 / TrustedInstaller 权限。 - 用户私有目录:
AppData整套目录;仅当前 SID 用户读写,其他用户账户拒绝访问。 通过文件对象安全描述符,内核 I/O 管理器做访问校验。
- 用户数据隔离(User Profile)
ProfSvc用户配置服务,每个账户独立一套UserProfile,内部分割三类数据:
- Roaming:支持 AD 域配置文件漫游,跨设备同步小配置;
- Local:本机本地缓存,永远不漫游,存放大体积缓存;
- LocalLow:附加 NTFS低完整性强制标签,专供沙盒低完整性进程写入,防止低权限篡改正常用户配置博客园。
- UAC 虚拟化(兼容隔离 VirtualStore) 遗留 32 位旧软件错误向
ProgramFiles/Windows写配置;系统不直接报错,透明重定向写入当前用户%LOCALAPPDATA%\VirtualStore,欺骗应用以为写入系统目录;仅用于兼容老软件,现代应用禁用该机制GitHub。 - AppContainer / MSIX 包隔离(应用容器隔离) UWP、MSIX 应用;安装目录
WindowsApps、SystemApps权限锁定;运行时文件系统虚拟化,每个应用拥有独立虚拟视图;卸载时完整清理全部数据,无残留垃圾文件Microsoft ...。
核心思想:物理目录 + 内核 I/O 拦截 + 权限 ACL + 运行时路径重定向,多层叠加完成隔离;应用通过标准 API 获取路径,禁止硬编码绝对路径 C:\xxx。
二、依赖文件
| 组件 | 文件 / 驱动 | 作用 |
|---|---|---|
| NTFS 文件系统驱动 | ntfs.sys |
NTFS ACL 安全描述符、强制完整性标签、硬链接、权限继承基础载体博客园 |
| WOW64 子系统 | wow64.dll、wow64win.dll、wow64cpu.dll |
32 位进程文件系统、注册表路径重定向核心;NtOpenFile 系统调用前做路径改写 |
| 用户配置服务 | profsvc.dll(ProfSvc 服务) |
用户登录创建、加载、初始化 AppData 整套目录、ACL、漫游同步、NTUSER.DAT 加载博客园 |
| 已知文件夹 API | shell32.dll、userenv.dll |
SHGetKnownFolderPath,提供环境变量对应路径;现代程序获取目录标准入口 |
| I/O 管理器 + 过滤框架 | fltmgr.sys |
挂载文件系统回调,实现 UAC 虚拟化、各类文件过滤拦截 |
| UAC 虚拟化逻辑 | kernel32.dll、ntdll.dll |
判断进程是否需要虚拟化,完成写入重定向至 VirtualStoreGitHub |
| AppX 包管理器 | appxsvc.dll、staterepository.dll |
WindowsApps 目录权限管控、MSIX 运行时虚拟文件系统 VFS |
| 注册表配套 | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders |
系统目录原始路径配置;环境变量解析源头 |
三、依赖关系
- 系统服务强依赖:ProfSvc(User Profile Service) ProfSvc 禁用:用户登录失败,生成临时配置文件;整套 AppData 目录隔离机制完全失效,Roaming/Local/LocalLow 全部异常博客园。
- WOW64 依赖进程 PE 头 Machine 标记 内核读取 PE 头 Machine 字段,区分是 32/64 位进程;只有 32 位进程触发 WOW64 路径重定向;64 位进程不做改写。
- UAC 虚拟化依赖条件(全部满足才生效)
- 进程非提升(非管理员 UAC 提升);
- 32 位进程;
- 程序 manifest 没有标记
requestedExecutionLevel; - 写入路径属于受保护系统目录(ProgramFiles、Windows);
64 位进程、已提升进程、带正确 manifest 现代软件,默认关闭 UAC 虚拟化,不会进入 VirtualStore 重定向。
- NTFS 依赖 ACL、强制完整性标签、VirtualStore 全部依赖 NTFS;如果分区为 FAT32,ACL 与完整性标签全部失效,目录权限隔离能力消失。
- 完整性标签依赖 LocalLow LocalLow 目录必须设置 Low 强制完整性标签;手动复制文件到此目录不会自动继承标签,沙盒进程依旧无法写入。
- 域环境依赖 Roaming 漫游隔离生效依赖 AD 域控制器;单机本地账户,Roaming 目录物理存在,但不会执行网络同步;Local/LocalLow 永远不参与漫游。
- 包隔离依赖 AppX 服务 停止 AppX 服务,WindowsApps、SystemApps 目录隔离失效,UWP/MSIX 无法正常运行。
四、配套链
4.1 上层 API 与环境变量(应用层入口)
应用禁止硬编码 C:\xxx,必须使用两套方式获取目录:
- 环境变量:
%ProgramFiles%、%APPDATA%、%LOCALAPPDATA%; - Win32 API:
SHGetKnownFolderPath,shell32.dll 提供,推荐现代软件使用。
4.2 五大隔离目录分组配套
- 机器全局组:
ProgramFiles、ProgramFiles(x86)、ProgramData、System32、SysWOW64
配套:MSI 安装包、HKLM 机器注册表、TrustedInstaller 权限;存放程序二进制、机器公共配置。
- 用户配置组:
%UserProfile%\AppData\Roaming / Local / LocalLow / Local\Programs
配套:ProfSvc 服务、HKCU 用户注册表;存放用户私有配置、缓存、用户级别免安装软件。
- 虚拟化兼容组:
%LOCALAPPDATA%\VirtualStore
配套:UAC 虚拟化,专门承接旧软件错误写入系统目录的 IO;仅兼容遗留软件。
- UWP 包隔离组:
WindowsApps、SystemApps
配套:AppX 服务、MSIX VFS 虚拟文件系统;每个应用独立版本目录,卸载整体删除。
4.3 运维配套工具
icacls.exe:查看 / 修改目录 NTFS ACL、完整性标签,排查目录权限隔离异常;set:cmd 查看全部环境变量;fltmc filters:查看文件系统过滤驱动栈,虚拟化、过滤驱动运行状态;- PowerShell
Get‑AppxPackage:管理包隔离应用; - 组策略:可控制用户配置文件漫游行为,调整 Roaming 同步黑名单。
五、逻辑链路(完整时序,进程访问隔离目录)
- 进程启动,内核读取 PE 头 Machine 标识,标记该进程是 32 位还是 64 位;
- 应用调用
CreateFileW打开目录路径,传入路径字符串(优先来自环境变量 / SHGetKnownFolderPath); - 系统调用进入内核 NtOpenFile;
- 第一层:WOW64 重定向判断 如果是 32 位进程,命中 WOW64 重定向路径表,透明改写路径:
C:\Program Files→C:\Program Files (x86);C:\Windows\System32→C:\Windows\SysWOW64。 - 第二层:NTFS ACL 安全校验 I/O 管理器读取目标目录 ACL 安全描述符,拿进程 Token SID 对比;判断读 / 写权限是否允许;
- 权限允许:直接下发 IO 至 NTFS 驱动;
- 写操作权限拒绝,进入下一步 UAC 虚拟化判断。
- 第三层:UAC 文件虚拟化判断 满足虚拟化全部条件(32 位、未提升、无 manifest、写入受保护系统目录); 将写入操作透明重定向至该用户
VirtualStore下镜像路径;程序感知不到重定向;读取时优先读 VirtualStore,无数据再读原始系统目录Microsoft ...。 - 第四层:完整性标签校验(针对 LocalLow) 如果目标目录是 LocalLow;校验进程完整性级别;只有 Low 完整性进程允许写入。
- 第五层:AppContainer 包隔离校验(UWP/MSIX) 包应用访问外部目录,校验包能力声明;没有声明权限直接拒绝访问;内部使用 VFS 虚拟合并视图。
- IO 落地 NTFS 磁盘,返回结果给应用层。
用户登录阶段前置链路: 用户登录 → ProfSvc 启动 → 创建 / 加载 UserProfile → 自动生成 Roaming/Local/LocalLow 目录,初始化 ACL、完整性标签;域环境同步 Roaming 漫游数据。
六、边界(约束、坑点、失效条件)
6.1 WOW64 架构隔离边界
- 只有64 位 Windows 才有这套隔离;纯 32 位 Windows 不存在
Program Files(x86)、SysWOW64; - 可以通过
Wow64DisableWow64FsRedirectionAPI 手动关闭重定向;关闭后极易出现 32 位程序加载 64 位 DLL 崩溃; - 重定向只发生在进程运行时,磁盘目录本身物理真实存在,不是符号链接。
6.2 NTFS‑ACL 权限隔离边界
- FAT32 分区 ACL、完整性标签全部失效,目录隔离模型不完整;
- 管理员可以手动修改目录 ACL,破坏系统预设隔离,引发软件异常;
TrustedInstaller是很多系统目录所有者;即使本地管理员,也不具备完全修改权限。
6.3 用户配置(AppData)隔离边界
- Roaming 漫游只同步小体积配置文件;大缓存必须放 Local;否则 AD 域登录注销严重卡顿;
- Local、LocalLow 永远不会漫游;换机器数据丢失;
- 删除用户账户,整套 AppData 全部销毁;
- LocalLow 仅仅自带 Low 标签;手动新建文件夹不会自动继承完整性标签,沙盒进程写失败。
6.4 UAC VirtualStore 虚拟化边界
- 仅针对遗留 32 位无 Manifest 旧软件;现代软件不应该依赖虚拟化;
- 不会虚拟化 exe/dll 等可执行文件写入,只针对配置类数据;防止恶意软件利用虚拟化投放恶意二进制GitHub;
- 提升后的管理员进程完全不触发虚拟化;
- VirtualStore 属于每个用户独立;A 用户 VirtualStore 数据对 B 用户完全不可见;很多故障根源:程序以为修改 ProgramFiles 配置,实际只写进当前用户 VirtualStore。
6.5 AppContainer/MSIX 包隔离边界
- WindowsApps 目录普通用户默认拒绝访问;手动修改目录 ACL 会破坏包校验,商店应用报错无法启动更新;
- MSIX 虚拟文件系统 VFS 仅包应用运行时生效;磁盘物理目录不发生改变。
6.6 通用误区边界
- 目录隔离模型是运行时逻辑重定向 + NTFS 权限,不是虚拟机容器;进程依旧原生运行,只是文件视图被改写;
- 硬编码绝对路径
C:\Program Files会绕过环境变量,在 32 位进程被 WOW64 改写,出现非预期路径;必须使用环境变量 / SHGetKnownFolderPath; - D 盘手动自建
D:\Program Files文件夹:不会自动继承系统 ACL、不会触发 WOW64 重定向、不会触发 UAC 虚拟化,隔离机制全部失效。
故障现象汇总:
- 32 位程序安装看似写入 ProgramFiles,实际跑到 Program Files (x86):WOW64 重定向;
- 程序修改系统配置,重启后配置丢失:写入被 UAC 虚拟化到 VirtualStore;
- 沙盒进程无法写入 LocalLow:目录缺少 Low 完整性标签;
- 域环境换电脑软件配置不见:软件把配置写进 Local 而不是 Roaming。
Windows 10 系统中都是常见的系统目录,每个目录都有其特定的功能和作用。下面是它们的简要区别、功能和优势:
-
C:\Program Files:
- 功能:这是用于存放系统安装的应用程序的默认目录。
- 作用:安装程序通常会将应用程序文件安装到这个目录中,确保程序的安全性和隔离性。
- 优势:提供了一个标准的位置来存放应用程序文件,使系统更易于管理和维护。
-
C:\Program Files (x86):
- 功能:这是用于存放 32 位应用程序安装文件的目录。
- 作用:对于 32 位应用程序,通常会安装到这个目录中,与 64 位应用程序相互隔离。
- 优势:确保了不同位数应用程序的文件不会混合在一起,提高了系统的稳定性和兼容性。
-
C:\Users\Username\AppData:
- 功能:包含用户特定的应用程序数据和设置。
- 作用:存储用户个人数据、配置文件以及某些应用程序的本地数据。
- 优势:帮助实现用户数据与系统数据的分离,确保用户数据的隐私性和安全性。
-
C:\Users\Username\AppData\Roaming:
- 功能:用于存储用户在不同计算机上共享的数据,如配置文件等。
- 作用:确保用户在不同设备上使用同一应用程序时能够共享数据和设置。
- 优势:提高了用户体验,使用户能够无缝地在不同设备上访问其个人数据。
-
C:\Users\Username\AppData\Local:
- 功能:用于存储用户特定且不需要在不同设备之间共享的数据。
- 作用:包含本地应用程序数据、缓存文件等。
- 优势:提高了应用程序的响应速度和性能,同时保护用户数据的隐私性。
-
C:\Users\Username\AppData\Local\Programs:
- 功能:用于存储用户安装的应用程序。
- 作用:提供一个用户级别的应用程序安装目录,而非系统级别的 Program Files 目录。
- 优势:用户可以在该目录下安装个人偏好的应用程序,不影响整个系统。
-
C:\Users\Username\AppData\LocalLow:
- 功能:用于存储低权限应用程序的数据。
- 作用:为低权限应用程序提供一个独立的数据存储位置,以增加系统安全性。
- 优势:提高了系统的安全性和稳定性,降低了低权限应用程序对系统的风险。
-
C:\ProgramData:
- 功能:用于存储系统和所有用户共享的应用程序数据。
- 作用:提供一个系统级别的数据存储位置,供所有用户和应用程序共享。
- 优势:确保系统和多用户环境下的应用程序能够共享数据,提高了系统整体的效率和协作性。
Windows 10 中,软件安装目录和应用安装目录有以下几个常见的位置:
-
软件安装目录:
- C:\Program Files:这是用于存放系统安装的应用程序的默认目录。64 位应用程序通常会安装到这个目录中。
- C:\Program Files (x86):这是用于存放 32 位应用程序安装文件的目录。
-
应用安装目录:
- C:\Users\Username\AppData\Local\Programs:这是用户级别的应用程序安装目录,用于存储用户安装的应用程序。
Windows 10 中,系统自带应用的安装目录通常在以下位置:
-
C:\Windows\SystemApps:这个目录包含了 Windows 10 系统自带的一些应用的安装文件。
-
C:\Program Files\WindowsApps:这个目录包含了 Windows 10 应用商店中下载的应用的安装文件,也包含一些系统自带的应用的安装文件。
-
默认软件安装目录:
- C:\Program Files:这是用于存放系统安装的应用程序的默认目录。大多数 64 位应用程序会安装到这个目录中。
- C:\Program Files (x86):这是用于存放 32 位应用程序安装文件的目录。
-
默认应用安装目录:
- C:\Users\Username\AppData\Local\Programs:这是用户级别的应用程序安装目录,用于存储用户安装的应用程序。
-
默认组件安装目录:
- C:\Windows\System32:这个目录包含 Windows 系统的核心组件和可执行文件,如驱动程序、DLL 文件等。
- C:\Windows\SysWOW64:这个目录包含了运行在 32 位模式下的系统组件和应用程序。
Windows 10 中,很多组件功能是系统自带的,并且已经预先安装在系统中。这些组件功能通常存储在以下默认位置:
-
C:\Windows\System32:这个目录包含了 Windows 系统的核心组件和可执行文件,如驱动程序、DLL 文件等。
-
C:\Windows\SysWOW64:这个目录包含了运行在 32 位模式下的系统组件和应用程序。
-
C:\Windows\WinSxS:这个目录包含了系统的所有组件和资源,这些组件和资源可以被不同的应用程序共享和使用。
需要安装或卸载系统组件,可以通过控制面板或 PowerShell 来进行操作。具体方法如下:
- 在任务栏的搜索框中输入“控制面板”,然后选择“控制面板”应用程序;
- 在控制面板中,选择“程序”;
- 点击“启用或关闭 Windows 功能”;
- 在弹出的对话框中,勾选或取消勾选你需要安装或卸载的组件,然后点击“确定”即可。
或者,你也可以使用 PowerShell 来进行安装或卸载组件,具体命令如下:
- 安装组件功能:
Enable-WindowsOptionalFeature -Online -FeatureName FeatureName - 卸载组件功能:
Disable-WindowsOptionalFeature -Online -FeatureName FeatureName

浙公网安备 33010602011771号