Windows系统无原生“软件安装路径白名单”,需通过AppLocker路径规则(如C:ApprovedInstallers*)放行可信安装目录,并配合SRP设默认“不允许”、禁用临时目录执行及关闭侧载等组合策略实现,部署须在计算机配置分支且启用Application Identity服务。

Windows 系统本身不提供“软件安装路径白名单”这一独立功能,但可通过组合策略实现仅允许从指定目录安装软件的效果——本质是控制安装行为的触发条件(如.msi/.exe执行、注册表写入、服务安装等),而非单纯限制路径字符串。实际落地需分两层:阻止非授权路径的安装行为 + 放行可信路径的合法操作。
一、用 AppLocker 控制可执行文件启动源头
安装程序本质是运行一个可执行文件(setup.exe、installer.msi 等)。AppLocker 可基于路径规则,只允许特定目录下的安装包被启动:
- 进入
gpedit.msc→ 计算机配置 → 安全设置 → AppLocker → 可执行规则 - 新建规则 → 类型选“路径” → 条件设为“路径” → 浏览或手动输入可信安装目录,例如:
-
C:ApprovedInstallers* -
D:IT_DeploymentPackages*.exe -
\servershareinstall*.msi(注意需启用网络路径支持)
-
- 规则操作选“允许”,并确保勾选“配置规则强制执行”
-
关键细节:路径末尾加
*表示匹配该目录下所有文件;若用**或通配符泛化(如C:**.exe),可能被绕过,不推荐
⚠️ 注意:AppLocker 不拦截 MSI 的静默安装(如
msiexec /i调用),需配合后续策略补位。
二、用软件限制策略(SRP)补充 MSI 和脚本安装控制
SRP 虽较旧,但在家庭版或需兼容旧系统时仍有效,可对 .msi、.ps1、.bat 等安装载体做路径级限制:
-
gpedit.msc→ 计算机配置 → 安全设置 → 软件限制策略 - 若提示“未定义”,右键创建新策略
- 右键“其他规则” → 新建路径规则
- 输入路径如:
C:ApprovedInstallers*→ 安全级别设为“不受限的” - 再新建一条默认规则:右键“证书规则”或“哈希规则”外的空白处 → “新建安全级别” → 将默认级别设为“不允许”
这样,任何不在 C:ApprovedInstallers 下的 MSI 或脚本,默认无法执行。
三、配合组策略禁用通用安装入口
光控路径不够,还需关闭常见绕过方式:
- 禁用 Windows Installer 服务(谨慎):
services.msc→ 找到“Windows Installer” → 启动类型设为“已禁用”(仅适用于完全锁定场景,部分系统更新会失败) - 禁止用户运行来自临时目录的安装包:
组策略 → 用户配置 → 管理模板 → 系统 → “不要运行指定的Windows应用程序” → 启用,并添加:Temp*.exe,AppDataLocalTemp*.msi,Downloads*.exe等常见下载/缓存路径中的文件名(注意此处填的是文件名,不是路径,适合辅助拦截) - 关闭“开发者模式”和“侧载应用”:
组策略 → 计算机配置 → 管理模板 → Windows组件 → App Package Deployment → 禁用“允许全部受信任的应用安装”
四、部署与验证要点
- 所有策略必须部署在计算机配置分支(不是用户配置),否则无法拦截系统级安装行为
- 客户端需运行 Application Identity 服务(AppLocker 依赖)且状态为“正在运行”
- 首次上线务必先设为审核模式:AppLocker 属性中勾选“仅审核”,观察事件查看器 → Windows日志 → 应用程序控制策略,确认真实安装行为是否都被捕获
- 测试时用标准用户账户登录,避免管理员权限绕过限制
不复杂但容易忽略。


















