Windows Server 中通过组策略管理来禁止员工安装软件的设置;Windows 的组策略功能提供了多种安全管理工具,其中 AppLocker 是一种用于控制应用程序执行的功能。AppLocker 允许管理员定义哪些应用程序可以在计算机上运行,从而增强系统的安全性。以下是对 AppLocker 中不同规则类型的详细描述以及配置方法。
分步:在测试实验室中演示 DNSSEC |Microsoft 学习
Windows 中的 DNSSEC |Microsoft 学习
附录 B:适用于 DNS 服务器的 Windows PowerShell |Microsoft 学习
在组策略中使用启动、关机、登录和注销脚本 |Microsoft 学习

组策略「域名解析策略(NRPT)」配置界面
一、基础概念
NRPT 全称
本地组策略编辑器 → 计算机配置 → Windows 设置 → 域名解析策略
二、界面分区逐项拆解
1. 规则基础配置区(创建规则必填项)
- 此规则应用于命名空间的哪个部分?
下拉选项:
后缀:匹配域名尾缀(例:填contoso.com,所有xxx.contoso.com都生效);完全限定名称:仅匹配单个完整域名(server01.contoso.com);子网:匹配反向解析 IP 段。
- 证书颁发机构
配合 DNSSEC/IPSec,指定信任 CA 证书,校验 DNS 服务器身份,防中间人劫持。
- 底部功能标签页(4 大模块):
DNSSEC/DirectAccess 的 DNS 设置/常规 DNS 服务器/编码
2. DNSSEC 安全配置标签(图中当前激活页面)
- 启用此规则中的 DNSSEC
总开关,勾选后下方校验、加密选项才会生效。
- 要求 DNS 客户端检查名称和地址数据是否已由 DNS 服务器验证
强制校验:如果目标域名 DNS 服务器未做 DNSSEC 签名、签名失效 / 伪造,客户端直接丢弃解析结果,拒绝访问。适用于财务、政务等高安全内网域名。
- 在 DNS 客户端和 DNS 服务器之间的通信中使用 IPSec
DNS 查询走 IPSec 加密隧道,明文 DNS 流量无法抓包窃取;
- 加密类型下拉(当前:未加密 (仅完整性))
- 仅完整性:不加密报文,但做哈希防篡改;
- 完整性和加密:完整 IPSec 加密传输 DNS 请求 / 应答。
3. 其他标签页简要说明
- 常规 DNS 服务器
为匹配的域名单独指定 DNS 服务器 IP,典型场景:内网业务域名走内网 DNS,公网域名走运营商 DNS;医保 / 政务专网域名分流解析,无需修改网卡全局 DNS。
- DirectAccess 的 DNS 设置
企业远程内网隧道专用,远程员工外网环境解析内网服务器域名,配合 DA 隧道路由。
- 编码
配置 DNS 名称国际化编码(IDN Punycode),处理中文域名解析。
4. 界面底部功能按钮
- 创建:填写完规则参数后,写入下方「名称解析策略表」列表;
- 更新:修改已存在的规则;
- 清除:清空当前页面所有配置项;
- 高级全局策略设置:全局 NRPT 兜底规则,控制规则匹配优先级、故障回退策略。
5. 底部表格「名称解析策略表」
三、核心典型应用场景
- 内网域名强制 DNSSEC 防劫持
给
.company.internal后缀创建规则,开启 DNSSEC 强制校验,内网 DNS 必须签名,拦截篡改。 - 多网络 DNS 分流(医院 / 政务内网)
公网域名用 114.114.114.114,医保专网
*.yb.local单独指向医保 DNS,一套网卡无需切换配置。 - 远程 DirectAccess 企业内网解析
外勤员工在外网,自动通过 NRPT 解析内网 ERP、文件服务器域名。
- 高安全环境 DNS 流量加密
关键业务域名开启 IPSec 加密 DNS 通信,杜绝抓包窃取域名访问记录。
四、配套运维补充
- 组策略下发
域环境可把此 GPO 链接到 OU,批量所有客户端自动生效;单机使用本地组策略仅本机生效。
- PowerShell 命令行管理 NRPT
# 创建NRPT规则,给contoso.com指定内网DNS并开启DNSSEC
Add-DnsClientNrptRule -Namespace "contoso.com" -NameServers "192.168.1.10" -EnableDnsSec $true -DnsSecValidationRequired $true
# 查看本机所有NRPT规则
Get-DnsClientNrptRule
- 验证生效
nslookup -debug 域名
事件查看器 → 应用程序日志 → DNS客户端事件查看 NRPT 规则匹配、DNSSEC 校验结果。五、与 Hosts 文件对比优势
| 特性 | NRPT 域名解析策略 | Hosts 本地文件 |
|---|---|---|
| 批量域管控 | 支持后缀通配匹配,域环境批量推送 | 仅单条域名,无批量下发能力 |
| DNS 安全校验 | 原生支持 DNSSEC、IPSec 加密 | 无任何安全校验,易被篡改 |
| 分流解析 | 不同域名指向不同 DNS 服务器 | 只能写死静态 IP,无法分流 |
| 远程隧道 | 兼容 DirectAccess 远程内网解析 | 纯静态映射,不支持隧道 |
| 统一运维 | GPO 集中更新,自动同步客户端 | 需手动拷贝文件到每台设备 |
NRPT(Name Resolution Policy Table 名称解析策略表)完整演进史
一、诞生起点:Windows 7 / Server 2008 R2(2009,初代基础版)
设计初衷
- DirectAccess(无 VPN 远程内网):外勤在外网时,内网域名必须路由至企业内网 DNS,公网域名走本地互联网 DNS,全局网卡 DNS 无法实现分流;
- DNSSEC 域名安全扩展:需要对指定内网域强制签名校验,不能全局开启影响公网解析。
初代核心能力
- 三种命名空间匹配规则:域名后缀、完整 FQDN、反向解析子网;
- 基础分流:为匹配域名单独指定专用 DNS 服务器;
- 基础 DNSSEC 开关:启用校验、强制服务器验证;
- DirectAccess 专属 DNS 路由规则,区分内网 / 外网解析路径;
- 组策略图形编辑器(你截图界面的初代原型)、PowerShell 基础管理命令。
初代局限 & 缺陷
- 规则上限硬限制:最多1000 条 NRPT 规则,超过则全部规则失效,大型企业域容易触发故障Microsoft ...;
- IPSec 仅支持基础完整性校验,无完整加密选项;
- 无全局兜底策略、无故障回退逻辑;
- 仅企业版 / 旗舰版 Windows 7 支持,家庭版完全阉割;
- 浏览器(Chrome/Edge)内置解析器不兼容 NRPT,仅系统 DNS Client 服务生效。
二、第一次大规模升级:Windows 8 / 8.1 / Server 2012 (R2)(2012–2014,功能扩充版)
核心迭代改进
- 规则容量扩容:移除 1000 条硬性上限,仅受内存限制,大型多分支企业不再触发规则失效故障;
- DNSSEC 安全增强
- IPSec 细分两种模式:「仅完整性校验」「完整性 + 流量加密」(你截图下拉框两种选项自此版本加入);
- 支持自定义信任 CA 证书,校验 DNS 服务器身份,抵御中间人劫持;
- DirectAccess 多站点支持
多分支机构 DA 服务器场景,NRPT 自动匹配就近内网 DNS,跨区域远程解析优化;
- IDN 国际化域名编码标签页新增
原生支持中文、多语言域名 Punycode 自动转码;
- 底层调度逻辑优化
DNS Client 优先匹配 NRPT 规则,未命中才走网卡 / HOSTS,匹配优先级逻辑固化沿用至今;
- 修复长域名、中文路径组策略下发乱码 bug。
新增运维能力
- 事件日志细分 NRPT 匹配、DNSSEC 校验失败日志,排错可定位具体规则;
- PowerShell 完整模块:
Get-DnsClientNrptRule/Add-DnsClientNrptRule全参数覆盖,可批量自动化创建规则。
三、云混合办公重构:Windows 10 全系列 / Server 2016/2019(2015–2022,混合办公强化版)
时代背景
关键演进点
- 跨平台浏览器兼容
Chromium 内核 Edge、新版 Chrome 默认调用系统 DNS Client,完整识别 NRPT 规则,网页访问内网域名不再失效;
- 云 / 混合网络适配
- 支持 Azure 私有 DNS、内网混合云域名分流;
- 离线设备组策略缓存 NRPT 规则,断网后本地缓存规则持续生效;
- 安全加固
DNSSEC 强制校验失败时,客户端直接丢弃解析结果,新增阻断访问策略(初代仅告警);
- 组策略 UI 现代化重构
你截图中的分栏标签页(DNSSEC/DirectAccess/ 常规 DNS / 编码)为 Win10 定型界面,分层清晰,参数分区展示;
- 多 VPN 场景兼容
支持同时存在多条 NRPT 规则,区分企业内网、云桌面、第三方 VPN 域名解析路径;
- 权限精细化
家庭版不再阉割 NRPT,全 Windows 版本开放基础配置,仅 DirectAccess 规则仍限企业版。
架构变化
四、现代稳定版:Windows 11 / Server 2022–2025(2021 至今,安全零信任迭代)
无界面语法改动,底层安全 & 运维优化(当前截图界面完全继承 Win10 布局)
- DNS over HTTPS (DoH) 联动适配
NRPT 规则可搭配 DoH 策略,指定内网域名不走加密 DoH,强制内网明文 / IPSec DNS;公网域名自动走加密 DoH,分层管控;
- 零信任架构配套增强
配合 Windows Hello、IPsec 零信任隧道,NRPT 规则绑定设备身份,非托管设备不加载内网解析规则;
- 大规模域运维优化
GPO NRPT 规则增量下发,不再全量覆盖,减少域控同步流量;
- 漏洞修复与签名强化
DNSSEC 强制校验默认启用 SHA256 签名,废弃 SHA1 弱签名;IPSec 加密套件升级,支持 AES-GCM;
- 容器 / 虚拟机兼容
WSL2、Hyper-V 虚拟机继承主机 NRPT 规则,内网容器域名分流自动生效;
- 长期生命周期兼容承诺
微软明确无淘汰计划,DirectAccess 退役后,NRPT 作为通用 DNS 命名空间管控工具永久保留。
五、跨版本核心演进对照表
| 系统版本 | 里程碑新增功能 | 核心局限 | 定位 |
|---|---|---|---|
| Win7 / 2008R2 | NRPT 诞生、DA 基础分流、初代 DNSSEC | 1000 条规则上限、浏览器不兼容、家庭版阉割 | DirectAccess 专属配套组件 |
| Win8 / 2012R2 | 移除规则上限、IPSec 双加密模式、IDN 编码、多站点 DA | 仅传统内网场景优化,无云网络适配 | 企业内网远程解析专用工具 |
| Win10 / 2016–2019 | 浏览器兼容、UI 分层标签页、剥离 DA 耦合、混合云 DNS 分流 | 无 DoH 原生联动、零信任支持薄弱 | 通用 DNS 全局管控工具 |
| Win11 / 2022+ | DoH 联动、SHA256 DNSSEC、容器兼容、零信任设备绑定 | 无新增图形界面参数,语法完全兼容旧脚本 | 内网 / 云 / 零信任全场景 DNS 安全底座 |
六、演进核心规律总结
- 上层界面 / 语法冻结
Win10 定型的组策略 UI、PowerShell 参数、规则匹配逻辑,Win11 完全继承,2008R2 编写的自动化脚本可直接在新版系统运行,无兼容改写成本。
- 定位从 “DA 附属工具” 独立为通用 DNS 管控
诞生初衷只为解决 DirectAccess 远程解析,现完全独立,主流用途转为:内网 DNS 分流、DNSSEC 全局安全管控、混合云域名路由。
- 安全能力持续迭代
每一代都强化 DNSSEC、IPSec、签名加密,应对 DNS 劫持、中间人攻击等网络安全威胁。
- 适配现代办公形态
从纯内网 DA 远程 → VPN 混合云 → 零信任 / 容器 / 云桌面,持续扩展网络场景适配能力。
- 底层依赖固定不变
始终运行在
dnscache.dllDNS 客户端服务,匹配优先级逻辑(NRPT > HOSTS > 网卡 DNS)跨 15 年保持一致。
七、生命周期边界
- 最低支持系统:Windows 7 / Windows Server 2008 R2(2009);
- 当前全兼容系统:Win7 ~ Win11 24H2、Server 2008R2 ~ Server 2025;
- 淘汰趋势:无废弃计划,是 Windows 唯一原生按域名后缀分流 DNS 的内置组件,无替代原生工具。
NRPT(Name Resolution Policy Table,名称解析策略表)完整拆解
一、基础定义
简单理解:hosts 是静态域名→IP 映射;NRPT 是动态策略引擎,可以针对域名后缀配置解析方式、指定 DNS 服务器、启用 DNSSEC、强制 DNS over HTTPS、禁用 LLMNR/mDNS、拆分 DNS(Split-Brain DNS)等。
二、底层原理
1. 解析调用优先级完整顺序
- 应用调用
getaddrinfo()/DnsQueryEx()(ws2_32.dll) - 请求转发至 Dnscache(dnscache.dll,运行于 svchost.exe -k NetworkService)
- 第一步匹配 NRPT 策略表(最高优先级)
- 匹配域名后缀 / 完整域名规则;
- 命中则应用策略:指定 DNS 服务器、开启 DNSSEC、DoH、禁用迭代查询等;
- 匹配成功 → 使用策略指定参数执行 DNS 查询;
- 未命中 NRPT → 使用网卡 TCP/IP 配置内的默认 DNS 服务器;
- DNS 查询结果写入 Dnscache 内存缓存(
Get-DnsClientCache可见); - hosts 文件不经过 Dnscache,由 ws2_32 在更早阶段读取,优先级高于全部 DNS 查询(高于 NRPT)。
优先级排序:hosts 文件 > NRPT 策略 > Dnscache 内存缓存 > 网卡默认 DNS 服务器
2. NRPT 可控制的典型行为
- 针对特定域名后缀强制使用指定 DNS 服务器(拆分 DNS、内网私有域名解析)
- 强制启用 DNSSEC 验证,拒绝未签名域名响应
- 强制启用 DNS over HTTPS(DoH)
- 禁用特定名称解析协议(LLMNR、mDNS)
- 启用直接 / 递归查询控制
- VPN 场景常用:VPN 上线后加载 NRPT,内网域名走企业 DNS,公网域名走互联网 DNS
三、依赖文件、进程、组件
- 核心服务进程
Dnscache(DNS Client 服务,svchost.exe 承载,dnscache.dll)
⚠️ 若禁用 Dnscache:NRPT 完全失效,Windows 不再加载名称解析策略表。
- 关键二进制
dnscache.dll:NRPT 规则解析、匹配引擎载体dnsapi.dll/dnsclient.dll:PowerShell DNS 管理命令底层 APIgpengine.dll:组策略引擎,读取 GPO 下发 NRPT 配置
- 注册表存储位置
- 本地策略生效配置:
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient子键DnsPolicyConfig存放所有 NRPT 规则条目 - 组策略下发策略会合并写入此路径;重启 Dnscache 或刷新组策略后重载。
- PowerShell 模块
DnsClient.psd1,提供 NRPT 查询命令。
四、依赖关系图谱
组策略(GPO/本地策略) → 注册表DnsPolicyConfig
↓
Dnscache服务启动/策略变更 → dnscache.dll加载NRPT规则到内存
↓
应用域名解析请求 → ws2_32.dll → RPC调用Dnscache
↓
dnscache.dll执行NRPT规则匹配 → 改写DNS查询参数
↓
向指定DNS服务器(UDP53 / DoH HTTPS)发起查询
↓
应答写入Dnscache缓存 → Get-DnsClientCache可读取结果
- Dnscache 服务必须运行;停止服务 → NRPT 策略不生效;
- NRPT只作用于经过 Dnscache 的解析请求;
⚠️ nslookup 绕过 Dnscache,直接发起 DNS 查询,不会应用 NRPT!验证 NRPT 必须使用 ping、浏览器、Resolve-DnsName、Get-DnsClientCache。
- 普通用户可查看策略;修改 NRPT 配置需要管理员权限;
- WoL、部分底层驱动级网络解析可能不经过 Dnscache,不受 NRPT 管控。
五、完整逻辑链路
链路 1:策略加载链路
- 管理员通过组策略编辑器 / PowerShell 写入 NRPT 规则
- 配置持久化至注册表
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig - 执行
gpupdate /force或重启 Dnscache - svchost 内 dnscache.dll 读取注册表,将规则加载至内存 NRPT 哈希表
- 后续所有经过 Dnscache 的域名解析实时匹配规则
链路 2:一次域名解析 NRPT 匹配流程
- 浏览器执行
app.corp.local域名解析 - ws2_32 先读取 hosts,无匹配
- RPC 请求发送给 Dnscache
- dnscache 遍历内存 NRPT 规则,命中后缀
corp.local - 读取策略:强制内网 DNS 10.0.0.10、启用 DNSSEC
- 使用指定 DNS 服务器发起查询,不使用网卡默认 DNS
- 获取 A 记录,存入 Dnscache 缓存
- IP 地址返回上层应用建立连接(tcpip.sys)
链路 3:排查验证链路
# 查看当前生效NRPT策略(权威命令)
Get-DnsClientNrptPolicy
# 测试域名是否命中NRPT(必须用Resolve-DnsName,不要nslookup)
Resolve-DnsName app.corp.local
# 查看DNS缓存
Get-DnsClientCache
六、配套链(配套功能、命令、场景组件)
1. PowerShell 配套命令(DnsClient 模块)
Get-DnsClientNrptPolicy # 查询生效NRPT策略
Get-DnsClientNrptRule # 查看规则对象
Add-DnsClientNrptRule # 添加NRPT规则
Remove-DnsClientNrptRule # 删除NRPT规则
Set-DnsClientNrptRule # 修改规则
Clear-DnsClientCache # 清空DNS缓存(配合调试NRPT)
Get-DnsClient # 网卡DNS配置
2. 协同组件
- Active Directory + GPO:域环境批量下发 NRPT(企业最常用)
- VPN 客户端(RAS/CMAK):VPN 接通自动推送 NRPT,实现拆分 DNS
- DNSSEC:NRPT 强制域名启用 DNSSEC 校验
- DoH(DNS over HTTPS):通过 NRPT 策略强制启用加密 DNS
- Windows 防火墙:配合管控 NRPT 指定 DNS 服务器访问权限
- BranchCache:配合内网域名解析优化分支机构访问
3. 相邻对比组件
- hosts:静态本地映射,优先级最高,无策略逻辑;
- NRPT:动态策略引擎,控制解析行为、转发目标;
- Dnscache 缓存:存储解析结果,NRPT 控制如何查询,缓存保存查询结果。
七、安全提醒
- NRPT 可被组策略篡改,攻击者获取 GPO 编辑权限可劫持域名解析;
- 若策略指定不受信任 DNS 服务器,存在中间人劫持风险;
- 不要依靠 NRPT 作为唯一安全控制,建议叠加 DNSSEC;
- nslookup 不遵守 NRPT,不要使用 nslookup 验证解析策略;
- 谨慎配置通配符 NRPT 规则,避免意外全局改写所有域名解析。
NRPT(Name Resolution Policy Table,名称解析策略表)完整底层原理
一、整体架构定位
- 预定义域名规则,拦截所有系统域名解析请求;
- 对命中规则的域名强制替换 DNS 服务器、启用 DNSSEC 校验、IPSec 加密传输;
- 分流内网 / 公网 / 远程 DirectAccess 域名解析链路;
- 优先级高于网卡 DNS、HOSTS 文件,是 Windows 系统最高优先级域名管控层。
应用程序 → Win32 DNS API (gethostbyname / DnsQueryEx)
↓
DNS Client 服务 (Dnscache) 加载 NRPT 规则库
↓ 1. 匹配NRPT命名空间规则(命中则执行专属策略)
↓ 2. 未命中 → 读取 %SystemRoot%\System32\drivers\etc\hosts
↓ 3. HOSTS无匹配 → 使用网卡TCP/IPv4/IPv6全局DNS服务器
↓
UDP/TCP 53端口发起DNS查询(可叠加IPSec隧道加密)
二、NRPT 规则存储与加载底层机制
1. 规则数据源(两大存储来源)
(1)本地组策略 / 域 GPO(持久存储)
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig- 每条规则对应一个子项,存储:命名空间、DNS 服务器、DNSSEC 开关、IPSec 配置、CA 证书、DA 参数;
- 域环境:客户端每 90 分钟自动拉取 GPO,更新注册表内 NRPT 规则;
- 单机本地组策略:修改界面后立即写入注册表,无需域控同步。
(2)运行时内存缓存(Dnscache 服务内存)
- 规则变更后,执行
gpupdate /force重启 DNS Client 服务,刷新内存规则; - 离线断网场景:内存缓存规则持续生效,不受网络状态影响。
2. 规则匹配引擎底层逻辑
匹配优先级(从上至下,命中即终止)
- 完全限定 FQDN(精确匹配单域名,优先级最高)
- 域名后缀(通配后缀,如
contoso.com匹配*.contoso.com) - 反向解析子网(IP 反向 PTR 查询专用规则,优先级最低)
匹配算法
lab.contoso.com,会同时匹配:
pc01.lab.contoso.com、erp.sub.lab.contoso.com。规则上限
三、三大核心功能底层执行链路
链路 1:DNS 服务器分流(常规 DNS 标签页功能)
- 应用发起域名解析请求,Dnscache 匹配到 NRPT 规则;
- 引擎替换请求目标 DNS 地址为规则内指定 IP,忽略网卡 TCP/IP 配置;
- 构建 DNS 报文,直接发往自定义 DNS 服务器;
- 应答缓存至 Dnscache 内存,后续同域名直接读取缓存。
*.corp.local指向 192.168.1.10 内网 DNS,公网域名使用运营商 DNS,一套网卡无需切换配置。链路 2:DNSSEC 安全校验底层执行(截图核心配置模块)
- 命中带 DNSSEC 启用标记的 NRPT 规则;
- DNS 客户端自动在查询报文中添加
DO=1(DNSSEC OK)标志,要求 DNS 服务器返回数字签名 RRSIG 记录; - 客户端提取根信任锚(系统内置根 DNSSEC 密钥),逐级验证域名签名链;
- 分层校验分支:
- 仅勾选「启用此规则中的 DNSSEC」:仅接收带签名应答,签名失效可降级放行;
- 同时勾选「要求 DNS 客户端检查名称和地址数据是否已由 DNS 服务器验证」:校验失败直接丢弃解析结果,应用返回域名不存在,阻断劫持访问;
- 签名校验全程在 Dnscache 用户态完成,不依赖内核驱动。
链路 3:IPSec 加密 DNS 传输(DNS 客户端与服务器加密通道)
- NRPT 规则开启 IPSec 后,Dnscache 调用 Windows IPSec Policy Agent 服务;
- 协商客户端与目标 DNS 服务器之间的安全关联 SA;
- 两种加密模式底层差异:
- 未加密 (仅完整性):报文明文传输,附加 SHA256 哈希校验,防止篡改,但可抓包读取域名;
- 完整性和加密:IPSec ESP 隧道加密整个 DNS 报文,第三方无法抓包解析域名请求;
- IPSec 协商失败时,默认阻断 DNS 查询(可通过全局策略配置降级放行)。
链路 4:DirectAccess 远程内网解析(NRPT 原生配套能力)
- 外网客户端解析内网域名
*.corp.local,命中 NRPT DA 规则; - Dnscache 将 DNS 请求封装至 DA IPv6 隧道;
- 流量通过公网 DA 网关转发至内网 DNS 服务器;
- 公网域名不匹配 DA 规则,直接走本地互联网链路,实现内外网域名自动分流。
四、底层依赖组件分工表
| 组件 | 文件 / 服务名 | 层级 | 与 NRPT 的协作关系 |
|---|---|---|---|
| NRPT 规则引擎 | dnscache.dll(Dnscache 服务) | 用户态核心 | 加载注册表规则、匹配域名、调度 DNSSEC/IPSec 逻辑 |
| Windows DNS API | dnsapi.dll | 上层应用接口 | 所有程序域名请求统一入口,转发至 Dnscache |
| IPSec 策略代理 | PolicyAgent 服务 | 安全加密层 | NRPT 触发 IPSec 时,建立 DNS 服务器加密隧道 |
| 组策略客户端 | gpclient.dll | 配置下发层 | 拉取域 GPO,写入 NRPT 注册表配置 |
| DNSSEC 根信任锚 | %windir%\System32\DnsSecRootKeys |
安全校验底层 | 提供公钥,验证 DNS 服务器返回的数字签名 |
| TCP/IP 网络栈 | tcpip.sys | 内核层 | 最终收发 DNS/IPSec 加密网络报文 |
五、关键底层约束与优先级机制
1. 解析优先级固化(跨所有 Windows 版本不变)
NRPT规则 > HOSTS文件 > 网卡IPv4/IPv6全局DNS- NRPT 命中域名会完全跳过 HOSTS、网卡 DNS 配置;
- 仅未匹配任何 NRPT 规则时,才会依次读取 HOSTS、网卡 DNS。
2. 进程生效范围
3. 缓存联动机制
- NRPT 匹配成功的解析结果,存入 Dnscache 内存缓存;
- 规则修改后必须清空 DNS 缓存
ipconfig /flushdns,旧缓存才会失效; - 缓存条目会绑定对应 NRPT 规则标识,规则删除后对应缓存条目自动过期。
六、底层数据流完整示例(带 DNSSEC+IPSec 的内网域名解析)
- 用户程序请求解析
erp.corp.local; - dnsapi.dll 将请求转发给本地 Dnscache 服务;
- Dnscache 加载内存 NRPT 表,匹配后缀
corp.local规则; - 识别规则配置:自定义内网 DNS、启用 DNSSEC、IPSec 完整性 + 加密;
- 调用 PolicyAgent 与内网 DNS 服务器建立 IPSec ESP 安全隧道;
- 构造带 DO 标志的 DNS 查询,通过加密隧道发送至内网 DNS;
- DNS 服务器返回域名 A 记录 + RRSIG 数字签名;
- Dnscache 使用系统根密钥校验签名完整性;
- 校验通过,将 IP 地址返回上层应用,同时存入本地 DNS 缓存;
- 校验失败:直接返回域名解析失败,拒绝访问。
七、底层区分:NRPT vs HOSTS vs 网卡 DNS 本质差异
- HOSTS:静态文本静态映射,无域名通配批量能力、无 DNS 安全校验、无法分流 DNS 服务器;
- 网卡全局 DNS:系统兜底解析,所有域名共用一套 DNS,无法按域名拆分链路;
- NRPT:动态规则引擎,运行时拦截解析请求,支持通配批量、DNSSEC 签名校验、IPSec 加密、分域名指定 DNS,企业域环境专用 DNS 管控底层组件。
NRPT(名称解析策略表)全场景分类详解
一、经典场景 1:DirectAccess 远程内网域名分流(原生设计初衷)
适用环境
实现逻辑
- NRPT 添加内网域名后缀规则(如
corp.internal); - 在外网解析内网域名时,命中规则自动封装 DA IPv6 隧道,流量转发至内网 DNS;
- 公网域名不匹配规则,直接走本地运营商 DNS,无需手动切换网络配置。
细分落地场景
- 外勤员工外网访问内网 ERP、文件服务器、域控;
- 多分支机构 DA 多站点自动就近匹配本地分支 DNS;
- 无需手动拨号 VPN,开机自动内网域名可达。
替代方案对比
二、经典场景 2:多网络 DNS 分流(内网 / 专网 / 公网隔离解析)
适用环境
实现逻辑
- 公网域名(
*.com/*.cn)→ 公共 DNS(114.114.114.114); - 企业内网(
corp.local)→ 内网域 DNS(192.168.1.10); - 医保专网(
*.yb.gov)→ 医保专网专用 DNS; - 工控产线(
factory.iot)→ 工业隔离 DNS。
优势
三、安全场景 3:DNSSEC 强制校验,抵御 DNS 劫持 / 污染
适用环境
实现逻辑
- 勾选「启用此规则中的 DNSSEC」,客户端查询携带 DO 标志,要求 DNS 返回数字签名;
- 勾选「要求 DNS 客户端校验服务器签名」,若签名伪造、过期、缺失,直接丢弃解析结果,阻断劫持访问;
- 搭配 IPSec 加密 DNS 报文,防止中间人抓包篡改域名应答。
细分场景
- 防止内网网关劫持业务域名跳转钓鱼页面;
- 隔离内网不受公网 DNS 污染影响;
- 等保三级 / 四级合规要求,实现域名解析链路安全审计。
四、安全场景 4:IPSec 加密 DNS 传输,防止域名抓包窃取
适用环境
两种加密模式落地
- 仅完整性(哈希校验):报文明文传输,但防篡改,适合基础安全要求;
- 完整性 + 加密(ESP 隧道):DNS 查询 / 应答全程加密,第三方抓包无法识别访问的域名。
搭配方案
五、混合云场景 5:本地 IDC + Azure/AWS 云资源域名统一解析
适用环境
实现逻辑
- 本地域名
corp.local指向本地内网 DNS; - 云私有域名
az.corp.cloud指向 Azure 私有 DNS; - 终端无需修改 DNS,自动分流本地 / 云域名解析;
延伸能力
六、终端批量管控场景 6:域环境 GPO 统一下发解析策略
适用环境
落地方式
- 编辑域 GPO 配置 NRPT 规则,链接至员工 / 服务器 OU;
- 客户端每 90 分钟自动同步策略,无需逐台手动配置;
- 规则支持批量更新,修改后全终端自动生效;
对比 Hosts 劣势
七、特殊场景 7:隔离工控 / 嵌入式终端离线域名管控
适用环境
实现逻辑
- 通过本地组策略配置 NRPT,仅允许解析工控内网域名;
- 关闭网卡公网 DNS,所有公网域名无匹配规则无法解析,限制设备外联;
- 搭配 DNSSEC 校验,防止产线设备被内网恶意主机劫持。
八、现代零信任场景 8:DoH 分层管控(公网加密、内网禁止 DoH)
适用环境
实现逻辑
- 公网域名:系统默认启用 DoH 加密查询;
- 内网业务域名:NRPT 规则强制走内网明文 DNS,绕过 DoH,避免云加密通道无法解析内网私有域名;
解决痛点
九、运维 / 排错场景 9:精准定向域名解析故障排查
适用场景
临时运维方案
- 创建临时 NRPT 规则,单独将故障域名指向备用 DNS;
- 测试完成后删除规则,不影响全局终端配置;
- 搭配
nslookup -debug查看 NRPT 规则匹配日志,快速定位解析链路问题。
十、DirectAccess 退役替代场景 10:VPN 配套内网域名自动路由
时代背景
NRPT 新用途
- VPN 上线后自动加载 NRPT 规则,内网域名强制转发至内网 DNS;
- VPN 断开后规则自动失效,恢复公网默认解析;
- 无需 VPN 客户端内置域名分流功能,系统底层统一管控。
NRPT 场景选型速查表
| 场景分类 | 核心需求 | NRPT 独有优势 | 无 NRPT 替代方案缺陷 |
|---|---|---|---|
| DirectAccess 远程办公 | 内外网域名无感分流 | 开机自动隧道解析,无需手动 VPN | 传统 VPN 需手动拨号,无法自动分流 |
| 多网隔离(医院 / 政务) | 单网卡多套 DNS 解析 | 通配后缀批量规则,GPO 批量下发 | Hosts 仅支持单域名,无法批量 |
| 等保安全 DNS 防护 | 防劫持、加密 DNS 流量 | 原生 DNSSEC+IPSec 双安全机制 | 第三方安全软件成本高,兼容性差 |
| 本地 + 混合云架构 | 本地 / 云域名分流 | 离线缓存规则,虚拟机 / 容器继承 | 全局 DNS 只能选一套,无法拆分 |
| AD 域大规模终端 | 统一批量解析管控 | 组策略原生集成,自动同步 | 逐台修改 Hosts / 网卡 DNS 运维量大 |
| 工控隔离设备 | 限制外联、内网安全解析 | 本地组策略离线生效,无域依赖 | 防火墙拦截域名粒度粗,无法细分 |
| DoH 分层管控 | 公网加密、内网禁用 DoH | 按域名粒度控制 DoH 开关 | 全局 DoH 开关一刀切,内网解析失效 |
核心场景总结
- 刚需首选场景:多网络 DNS 分流、DA / 零信任远程内网解析、等保 DNS 安全加固;
- 替代优化场景:替代海量 Hosts 静态条目、替代全局网卡 DNS 切换;
- 独有不可替代能力:按域名后缀批量配置独立 DNS、DNSSEC 强制校验、IPSec 加密 DNS 传输、域环境批量统一下发解析策略。
NRPT(名称解析策略表)完整实操示例
前置说明
gpupdate /force
ipconfig /flushdns
Get-DnsClientNrptRule示例 1:基础多网络 DNS 分流(政务 / 医院最常用)
需求
- 所有内网域名
*.corp.local强制走内网 DNS192.168.10.5; - 医保专网
*.yb.gov.cn指向医保专用 DNS10.0.0.8; - 公网域名不匹配规则,自动使用网卡默认 DNS。
图形界面配置步骤
- 点击【创建】,命名空间选择「后缀」,填入
corp.local; - 切换到【常规 DNS 服务器】标签,填入
192.168.10.5; - 点击【更新】保存第一条规则;
- 再次点击【创建】,后缀填入
yb.gov.cn,DNS 服务器填10.0.0.8,保存第二条规则。
PowerShell 一键创建脚本
# 内网企业域名规则
Add-DnsClientNrptRule -Namespace "corp.local" `
-NameServers "192.168.10.5" `
-Comment "企业内网域名分流至域DNS"
# 医保专网域名规则
Add-DnsClientNrptRule -Namespace "yb.gov.cn" `
-NameServers "10.0.0.8" `
-Comment "医保专网专用DNS分流"
验证
nslookup erp.corp.local,抓包可见查询发往 192.168.10.5,而非网卡 DNS。示例 2:DNSSEC 强制防劫持(等保三级安全示例)
需求
finance.corp.local 开启 DNSSEC 强制校验:- 启用 DNSSEC 签名验证;
- 校验失败直接阻断解析,禁止降级访问;
- DNS 报文使用 IPSec 完整性校验,防止中间人篡改。
图形界面参数配置
- 创建规则,命名空间选择「完全限定名称」,填入
finance.corp.local; - 切换【DNSSEC】标签:
✅ 勾选「启用此规则中的 DNSSEC」✅ 勾选「要求 DNS 客户端检查名称和地址数据是否已由 DNS 服务器验证」✅ 勾选「在 DNS 客户端和 DNS 服务器之间的通信中使用 IPSec」加密类型选择:
未加密(仅完整性) - 【常规 DNS 服务器】填入内网安全 DNS
192.168.10.6; - 点击【更新】保存规则。
PowerShell 对应脚本
Add-DnsClientNrptRule -Namespace "finance.corp.local" `
-NameServers "192.168.10.6" `
-EnableDnsSec $true `
-DnsSecValidationRequired $true `
-EnableIPsec $true `
-IPsecEncryption None `
-Comment "财务域名强制DNSSEC防劫持"
效果
示例 3:IPSec 完整加密 DNS 流量(涉密笔记本零信任示例)
需求
*.remote.corp.local 时,DNS 查询全程 IPSec 加密,抓包无法读取域名。PowerShell 脚本
Add-DnsClientNrptRule -Namespace "remote.corp.local" `
-NameServers "2001:db8::10,192.168.10.7" `
-EnableDnsSec $true `
-EnableIPsec $true `
# 完整性+ESP加密
-IPsecEncryption EncryptionAndIntegrity `
-Comment "远程内网DNS流量IPSec全加密"
界面关键选项
完整性和加密。示例 4:DirectAccess 远程内网自动解析(原生配套经典示例)
需求
corp.local 内网域名自动走 DA 隧道,公网域名直连互联网。图形配置
- 新建后缀规则
corp.local; - 切换【DirectAccess 的 DNS 设置】标签,勾选「启用 DirectAccess 此命名空间」;
- 常规 DNS 服务器填写内网域 DNS
192.168.10.5; - 无需开启 IPSec(DA 隧道本身已加密)。
PowerShell 脚本
Add-DnsClientNrptRule -Namespace "corp.local" `
-NameServers "192.168.10.5" `
-EnableDA $true `
-Comment "DirectAccess远程内网域名路由"
效果
fileserver.corp.local,流量自动封装 DA IPv6 隧道进入内网。示例 5:混合云本地 + Azure 私有域名分流
需求
- 本地机房:
corp.local→ 内网 DNS192.168.10.5 - Azure 云私有域:
az.corp.cloud→ Azure 私有 DNS168.63.129.16
# 本地机房规则
Add-DnsClientNrptRule -Namespace "corp.local" -NameServers "192.168.10.5"
# Azure云域名规则
Add-DnsClientNrptRule -Namespace "az.corp.cloud" -NameServers "168.63.129.16"
延伸特性
示例 6:DoH 分层管控(Win11 现代办公,内网绕过加密 DNS)
需求
corp.local 禁止走 DoH,强制内网 DNS。原理
示例 7:AD 域 GPO 批量下发完整 NRPT 配置(企业千台终端落地)
操作流程
- 域控打开「组策略管理」,新建 GPO「终端统一 DNS 策略」;
- 编辑 GPO:计算机配置 → Windows 设置 → 域名解析策略;
- 依次创建示例 1 + 示例 2 的分流、安全规则;
- 将 GPO 链接到员工 PC、服务器 OU;
- 客户端自动每 90 分钟同步策略,执行
gpupdate /force立即生效。
批量导出 / 导入规则(跨域复用)
# 导出本机所有NRPT规则到XML
Get-DnsClientNrptRule | Export-Clixml D:\nrpt_rules.xml
# 导入到新设备/域模板
Import-Clixml D:\nrpt_rules.xml | New-DnsClientNrptRule
示例 8:临时运维排错单域名定向解析
需求
old-server.corp.local 临时指向备用 DNS 192.168.10.9,不影响其他业务。- 规则类型:完全限定名称;
- 命名空间:
old-server.corp.local; - DNS 服务器:
192.168.10.9;测试完成后在组策略界面删除该规则即可。
配套运维命令示例
# 刷新组策略,加载新NRPT规则
gpupdate /force
# 清空DNS缓存,让新规则立即生效
ipconfig /flushdns
# 查看本机所有NRPT规则
Get-DnsClientNrptRule
# 删除指定规则(按命名空间)
Remove-DnsClientNrptRule -Namespace "finance.corp.local"
# 调试域名匹配过程
nslookup -debug erp.corp.local
NRPT(名称解析策略表)特殊 / 另类实操示例
前置通用命令
# 刷新策略生效
gpupdate /force
# 清空DNS缓存
ipconfig /flushdns
# 查看本机全部NRPT规则
Get-DnsClientNrptRule
# 调试域名匹配链路
nslookup -debug 目标域名
示例 1:反向 PTR 子网规则(仅 IP 反向解析专用,极少人使用)
需求
192.168.10.0/24网段所有 IP 反向 PTR 查询,强制指向内网反向 DNS,正向域名不受影响。原理
in-addr.arpa反向解析域名,正向 A 记录解析不命中此规则。图形界面配置
- 创建规则 → 匹配类型选子网;
- 子网填写:
192.168.10.0/24; - 切换「常规 DNS 服务器」,填入内网 DNS
192.168.10.5; - 无需开启 DNSSEC/IPSec,保存。
PowerShell 脚本
Add-DnsClientNrptRule -Namespace "192.168.10.0/24" `
-NamespaceType Subnet `
-NameServers "192.168.10.5" `
-Comment "10段内网IP反向PTR专用DNS分流"
效果
nslookup 192.168.10.20(反向查询)流量发往内网 DNS;nslookup pc01.corp.local(正向查询)不受此规则控制。示例 2:域名阻断方案(另类拦截,无防火墙也可屏蔽域名)
需求
*.ad-block.com,让解析直接失败,不访问外网。另类实现思路
PowerShell
Add-DnsClientNrptRule -Namespace "ad-block.com" `
-NameServers "0.0.0.0" `
-Comment "屏蔽广告域名,黑洞DNS阻断解析"
图形配置
- 匹配类型:后缀
ad-block.com; - 常规 DNS 服务器填
0.0.0.0; - 不开启任何 DNSSEC/IPSec。
优势
示例 3:纯 IPSec 加密 DNS 流量(不搭 VPN/DA,仅加密 53 端口 DNS 报文)
特殊点
需求
*.secure.internal时,DNS 查询全程 ESP 加密,内网 DNS 服务器仅放行加密 DNS 报文。PowerShell 完整参数
Add-DnsClientNrptRule -Namespace "secure.internal" `
-NameServers "192.168.20.8" `
-EnableDnsSec $true `
-DnsSecValidationRequired $true `
-EnableIPsec $true `
# 完整加密+完整性校验
-IPsecEncryption EncryptionAndIntegrity `
-Comment "仅DNS流量IPSec加密,无需完整VPN隧道"
界面关键配置(对应截图 DNSSEC 标签)
完整性和加密底层区别
示例 4:IDN 中文域名 Punycode 强制编码(政企中文域名特殊适配)
需求
企业内网.中国,强制统一转 Punycode 编码解析,兼容老旧业务系统,防止 IDN 欺骗劫持。原理
PowerShell
Add-DnsClientNrptRule -Namespace "xn--fiq228c.xn--fiqs8s" `
-NameServers "192.168.10.5" `
# 2=强制Punycode编码
-NameEncoding 2 `
-Comment "中文域名强制Punycode编码解析,防IDN钓鱼"
图形界面操作
.中国 → 切换「编码」标签 → 选择「查询名称必须编码为 Punycode」。示例 5:全局兜底 NRPT 规则(所有未匹配域名统一管控,另类全局 DNS)
特殊用法
需求
配置
- 匹配类型:后缀,填写
.(单个点代表所有域名); - DNS 服务器填入公共加密 DNS
1.1.1.1; - 规则顺序放最后,仅其他规则未命中时触发。
# 全局兜底规则,所有不匹配其他规则的域名走1.1.1.1
Add-DnsClientNrptRule -Namespace "." -NameServers "1.1.1.1" -Comment "全局兜底公网DNS"
匹配优先级说明
完全FQDN > 自定义后缀 > 子网 > 全局兜底点规则示例 6:SSL VPN 配套 NRPT(DirectAccess 退役替代另类方案)
场景
另类逻辑
Add-DnsClientNrptRule -Namespace "corp.vpn.local" `
-NameServers "10.0.1.10" `
-EnableDnsSec $true `
-Comment "SSL VPN内网域名自动分流,无需DA组件"
对比 DA 原生规则
示例 7:DoH 分层旁路(强制内网域名绕过系统全局 DoH,现代 Win11 专属特殊用法)
痛点
特殊机制
仅需基础分流规则(无需额外参数,系统自动适配 DoH)
Add-DnsClientNrptRule -Namespace "corp.local" -NameServers "192.168.10.5"
效果
erp.corp.local:绕过 DoH,直连内网 DNSwww.baidu.com:未匹配规则,使用系统 DoH 加密解析
示例 8:运维临时隔离单域名(故障排错另类旁路,不改动全局配置)
需求
old-fs.corp.local临时切换至备用 DNS,其余业务保持原有解析,测试完成一键删除规则。特点
# 精确单域名临时切换备用DNS
Add-DnsClientNrptRule -Namespace "old-fs.corp.local" `
-NameServers "192.168.10.9" `
-Comment "临时故障域名分流,排错专用,测试后删除"
# 测试完成删除规则
Remove-DnsClientNrptRule -Namespace "old-fs.corp.local"
示例 9:WSL2/Hyper-V 容器继承 NRPT(混合桌面 + 虚拟化另类配套)
特殊底层特性
落地配置
erp.corp.local自动走内网 DNS,无需修改 WSL resolv.conf。# 宿主机配置,WSL/虚拟机自动复用
Add-DnsClientNrptRule -Namespace "corp.local" -NameServers "192.168.10.5"
示例 10:高安全等保组合极端规则(DNSSEC 强制校验 + IPSec 加密 + CA 证书绑定三合一)
合规需求(等保四级)
- 强制 DNSSEC 签名校验,失败阻断访问;
- DNS 报文 IPSec 完整加密;
- 绑定指定 CA 证书,仅信任企业内网 DNS 服务器证书,防中间人伪造 DNS。
完整 PowerShell 代码
Add-DnsClientNrptRule -Namespace "finance.corp.local" `
-NameServers "192.168.10.6" `
-EnableDnsSec $true `
-DnsSecValidationRequired $true `
-EnableIPsec $true `
-IPsecEncryption EncryptionAndIntegrity `
# 指定信任CA证书指纹
-DnsSecIPsecCARestriction "企业根CA指纹" `
-Comment "等保四级财务域名三重安全防护规则"
图形界面对应操作
特殊示例选型速查表
| 示例类型 | 核心特殊点 | 适用小众场景 |
|---|---|---|
| 反向子网 PTR 规则 | 管控 IP 反向解析,不影响正向域名 | 邮件服务器反解校验、内网审计 |
| 黑洞 DNS 域名阻断 | 无防火墙屏蔽域名,通配批量 | 工控终端禁止外联广告、涉密机拦截恶意域名 |
| 纯 IPSec 加密 DNS | 不部署 VPN/DA,仅加密 53 端口报文 | 外勤笔记本隐私防护、零信任内网 |
| IDN 中文域名编码 | 强制 Punycode 转码,防御 IDN 钓鱼 | 政企中文域名内网系统 |
| 全局兜底点规则 | 匹配所有域名,统一兜底 DNS | 混合云终端统一公网解析管控 |
| SSL VPN 替代 DA | 剥离 DA 耦合,轻量化内网分流 | 淘汰 DirectAccess 改用商用 VPN |
| DoH 分层旁路 | 内网域名自动跳过全局加密 DoH | Win11 现代办公,兼顾隐私与内网兼容 |
| 精确单域名临时排错 | 仅修改单个故障域名,无全局影响 | 运维故障排查、灰度测试解析 |
| WSL / 虚拟机自动继承 | 宿主机规则下发虚拟化环境 | 开发桌面多容器混合办公 |
| DNSSEC+IPSec+CA 三重绑定 | 等保合规最高安全等级 | 银行、政务涉密业务系统 |

在 Windows 组策略中,域名解析策略(DNS Client Policies)用于管理和配置 DNS 客户端的行为。这些策略可以帮助管理员控制 DNS 解析的设置,以提高网络的安全性和性能。以下是对域名解析策略的详细描述和配置步骤。
域名解析策略描述
-
功能:
- DNS 解析控制:通过配置 DNS 客户端的行为,确保计算机能够有效地解析域名。
- 安全性:可以防止 DNS 劫持和其他安全威胁。
- 性能优化:通过配置 DNS 缓存和超时设置,提高 DNS 解析的效率。
-
主要设置:
- DNS 服务器地址:指定用于解析域名的 DNS 服务器地址。
- DNS 缓存:配置 DNS 缓存的行为,包括缓存时间和清除策略。
- DNS 解析超时:设置 DNS 查询的超时时间。
- DNS 解析策略:可以根据需要配置不同的解析策略,例如使用特定的 DNS 服务器或域名。
配置域名解析策略的步骤
以下是配置域名解析策略的详细步骤:
1. 打开组策略管理控制台
- 按
Win + R键,输入gpmc.msc,然后按 Enter 键,打开组策略管理控制台。
2. 创建或编辑组策略对象(GPO)
- 找到您要应用域名解析策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
3. 导航到 DNS 客户端设置
- 在组策略编辑器中,导航到以下路径:
计算机配置 > 策略 > Windows 设置 > 安全设置 > 事件日志 > DNS 客户端
4. 配置 DNS 客户端策略
- 在 DNS 客户端设置中,您可以配置以下选项:
- DNS 服务器地址:可以设置 DNS 服务器的 IP 地址。
- DNS 缓存设置:配置 DNS 缓存的行为,包括缓存时间。
- DNS 解析超时:设置 DNS 查询的超时时间。
5. 应用和测试策略
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试 DNS 解析功能,确保策略按预期工作。
注意事项
- DNS 服务器的选择:确保选择可靠的 DNS 服务器,以提高解析的速度和安全性。
- 监控和日志:定期监控 DNS 解析的日志,以识别潜在的问题和安全威胁。
- 测试环境:在生产环境中实施这些策略之前,建议在测试环境中进行充分测试,以避免意外影响网络的正常运行。
通过以上步骤,您可以有效地配置和管理 Windows 的域名解析策略,以增强网络的安全性和性能。
Windows 组策略:域名解析策略(DNS Client Policies / NRPT)完整拆解
基础标识
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig概念厘清「域名解析策略」是组策略管理视图名称;NRPT 是内核内存策略表、数据存储模型;二者一体,日常表述经常混用。
一、底层原理
1. 核心定位
dnscache.dll 的域名解析请求,在使用网卡默认 DNS 前优先匹配策略规则,动态改变解析行为。2. Windows 名称解析完整优先级(自上而下)
%SystemRoot%\System32\drivers\etc\hosts(ws2_32.dll 直接读取,不经过 Dnscache,不受 NRPT 管控)- NRPT 域名解析策略(Dnscache 内部匹配)
- Dnscache 内存 DNS 缓存
- 网卡 TCP/IP 属性内配置的 DNS 服务器
- LLMNR / NetBIOS /mDNS 链路本地名称解析
3. 策略可管控行为清单
- 针对完整域名 / 域名后缀通配指定专用 DNS 服务器(拆分 DNS Split DNS、VPN 内网域名)
- 强制启用 / 禁用 DNSSEC 验证
- 强制启用 DNS over HTTPS(DoH)加密解析
- 关闭域名迭代查询、强制递归查询
- 阻止特定域名使用 LLMNR/mDNS 广播解析
- 配置 DNS 查询超时、安全扩展参数
4. 关键约束原理
- NRPT 仅对走 Dnscache 服务的解析生效
nslookup.exe直接调用 dnsapi 绕过 Dnscache,不会应用域名解析策略- 验证工具:
ping、浏览器、Resolve-DnsName、Get-DnsClientCache
二、依赖文件、进程、组件
1. 核心服务
svchost.exe -k NetworkService
dnscache.dll硬性依赖:停止 / 禁用 Dnscache → 域名解析策略完全失效。
2. 关键二进制文件
dnscache.dll:NRPT 规则加载、匹配引擎、解析调度核心dnsapi.dll/dnsclient.dll:DNS Client PowerShell APIgpengine.dll:组策略引擎,加载并下发域名解析策略 GPOws2_32.dll:应用程序发起域名解析标准接口gpedit.dll:组策略编辑器 UI 渲染模块
3. 持久化存储
- 本地策略 / GPO 落地配置:
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig每条 NRPT 规则对应一个子项,存储域名匹配条件、DNS 地址、DoH、DNSSEC 等参数。 - 刷新触发:
gpupdate /force或重启 Dnscache 服务,策略重载进入内存。
4. PowerShell 支撑模块
DnsClient.psd1,提供整套 NRPT 规则管理 Cmdlet。三、依赖关系图谱
管理员配置:本地组策略编辑器 / AD域GPO / PowerShell
↓
组策略引擎 → 将策略写入注册表 DnsPolicyConfig
↓
Dnscache服务启动 / 策略更新 → dnscache.dll加载全部规则到内存NRPT哈希表
↓
应用调用ws2_32.dll发起域名解析
↓
RPC通信发送解析请求至Dnscache
↓
dnscache.dll执行NRPT规则匹配
├─命中规则:使用策略指定DNS参数执行查询
└─未命中规则:使用网卡默认DNS配置
↓
DNS应答写入Dnscache缓存
↓
IP地址返回上层应用,经由afd.sys → tcpip.sys建立网络连接
四、两条核心逻辑链路
链路 A:策略下发 & 加载链路
- 管理员在组策略「域名解析策略」新建规则(匹配后缀、指定 DNS、开启 DoH/DNSSEC)
- GPO 保存,域终端执行
gpupdate /force拉取策略 - 组策略引擎将规则序列化写入注册表
DnsPolicyConfig - Dnscache 感知注册表变更,重载全部 NRPT 规则至内存
- 新的域名解析流量立即启用新策略;存量缓存不受影响
链路 B:单次域名解析策略匹配链路
- 程序请求解析
internal.corp.com - ws2_32 检索 hosts,无匹配记录
- RPC 请求转发至 svchost 中的 dnscache.dll
- dnscache 遍历内存 NRPT 规则,命中后缀
corp.com - 加载策略:强制使用内网 DNS 10.0.10.5、启用 DNSSEC 校验
- 向指定 DNS 服务器发起 UDP53/HTTPS (DoH) 查询
- 获取 A 记录存入 Dnscache 缓存
- IP 回传给应用,完成 TCP 连接准备
五、配套链(配套工具、协同组件、相邻技术)
1. PowerShell 配套命令
# 查看当前生效全部域名解析策略(NRPT)
Get-DnsClientNrptPolicy
# 规则对象管理
Get-DnsClientNrptRule
Add-DnsClientNrptRule
Set-DnsClientNrptRule
Remove-DnsClientNrptRule
# 调试辅助
Clear-DnsClientCache
Resolve-DnsName hostname
2. 协同企业组件
- Active Directory + GPO:域环境批量推送域名解析策略(企业主流方案)
- RAS / CMAK VPN:VPN 链路建立时动态加载 NRPT,实现「内网域名走企业 DNS,公网走互联网 DNS」(拆分 DNS 经典场景)
- DNSSEC:NRPT 强制特定域名启用签名验证,防范 DNS 污染劫持
- DoH(DNS over HTTPS):通过域名解析策略强制加密 DNS 流量
- Windows 防火墙:配合管控策略指定 DNS 服务器访问权限
3. 易混淆相邻技术对比
| 对象 | 本质 | 可控范围 |
|---|---|---|
| hosts | 静态本地域名→IP 映射 | 仅静态绑定,无法指定 DNS 服务器 |
| 域名解析策略 (NRPT) | 动态解析策略引擎 | 控制如何查询、向谁查询、是否加密、安全校验 |
| Dnscache 缓存 | 查询结果存储器 | 保存 DNS 应答,不控制查询行为 |
六、安全风险提醒
- AD 域内若攻击者获取 GPO 编辑权限,可篡改域名解析策略,劫持内网域名解析;
- 策略内配置外部不受信任 DNS 服务器,极易引入中间人劫持;
- 通配符规则配置失误会造成全局解析异常;
- 不能将 NRPT 作为唯一安全手段,关键业务建议叠加 DNSSEC;
- 运维排查禁止依靠 nslookup 验证策略,必须使用
Resolve-DnsName; - 终端用户默认无法修改 NRPT 规则,但管理员权限可随意新增 / 删除策略。
可直接导入总表的条目模板
功能名称 (中文):域名解析策略(DNS Client Policies / NRPT 名称解析策略表)功能描述 (英文):Provides Name Resolution Policy Table (NRPT) engine for DNS Client, controls domain name resolution behavior before querying DNS servers.应用场景:AD 域批量管控解析策略、VPN 拆分 DNS、强制 DoH/DNSSEC、内网私有域名定向企业 DNS安全提醒:GPO 篡改风险可劫持域名解析;谨慎配置通配符规则;nslookup 不生效,使用 Resolve-DnsName 验证;建议搭配 DNSSEC 提升安全性配套链:Dnscache 服务、PowerShell DnsClient 模块、AD 组策略、RAS VPN、DNS over HTTPS、DNSSEC
在 Windows 组策略中,域名解析策略(DNS Client Policies)用于管理 DNS 客户端的行为,特别是在使用 DNSSEC(DNS Security Extensions)和 DirectAccess 的环境中。以下是对域名解析策略的详细描述和配置步骤。
域名解析策略概述
域名解析策略表(NRPT)用于在 DNS 客户端计算机上存储 DNSSEC 和 DirectAccess 的配置设置。通过 NRPT,您可以创建和编辑规则,这些规则可以应用于 Active Directory 组织单位(OU)。
主要功能
-
DNSSEC 支持:
- DNSSEC 提供了一种机制,用于确保 DNS 查询的完整性和真实性。通过使用数字签名,DNSSEC 可以防止 DNS 劫持和伪造。
-
DirectAccess 支持:
- DirectAccess 允许远程用户安全地访问公司网络,无需使用 VPN。NRPT 可以帮助配置 DNS 设置,以支持 DirectAccess。
配置域名解析策略的步骤
1. 打开组策略管理控制台
- 按
Win + R键,输入gpmc.msc,然后按 Enter 键,打开组策略管理控制台。
2. 创建或编辑组策略对象(GPO)
- 找到您要应用域名解析策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
3. 导航到域名解析策略设置
- 在组策略编辑器中,导航到以下路径:
计算机配置 > 策略 > Windows 设置 > 安全设置 > 公钥策略 > 域名解析策略
4. 创建或编辑规则
-
在域名解析策略设置中,您可以创建或编辑规则:
- 命名空间的后缀:指定此规则适用的命名空间后缀。
- 证书颁发机构:选择用于创建数字证书的证书颁发机构(CA)。这用于验证 DNS 服务器的身份。
- DNSSEC 设置:
- 启用 DNSSEC:选择是否在此规则中启用 DNSSEC。
- 验证设置:要求 DNS 客户端检查名称和地址数据是否已由 DNS 服务器验证。
-
IPSec 设置:
- 在 DNS 客户端和 DNS 服务器之间的通信中使用 IPSec。
- 加密类型:选择加密类型(如未加密或仅完整性)。
5. 应用和测试策略
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试 DNS 查询,确保策略按预期工作。
高级全局策略设置
- 在 NRPT 中,您可以配置全局策略设置,包括 DNS 服务器的编码和其他高级选项。
注意事项
- 证书颁发机构的选择:确保选择可靠的 CA,以确保 DNS 服务器的身份验证。
- 监控和日志:定期检查 DNS 查询的日志,以识别潜在的问题和安全威胁。
- 测试环境:在生产环境中实施这些策略之前,建议在测试环境中进行充分测试,以避免意外影响网络的正常运行。
通过以上步骤,您可以有效地配置和管理 Windows 的域名解析策略,以增强网络的安全性和性能。

AppLocker 界面完整解读(组策略应用程序控制策略)
一、基础概念
本地计算机策略 → 计算机配置 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker二、界面四大规则集(截图底部概述模块)
- 可执行规则
管控
.exe、.com桌面可执行程序,是最常用的白名单规则;当前规则计数 0,未配置强制,默认状态为「强制规则」。 - Windows 安装程序规则
管控
.msi、.msp安装包、补丁安装程序,限制终端私自安装软件。 - 脚本规则
管控
.bat/.cmd/.ps1/.vbs/.js批处理、PowerShell、VBS 脚本,防止恶意脚本执行。 - 封装应用规则
管控 Microsoft Store UWP/MSIX 封装应用,限制商店软件安装运行。
三、核心配置区:配置规则强制(警告提示重点)
关键前置依赖
- 服务名称:
AppIDSvc - 启动类型需改为「自动」,策略才能正常拦截程序。
两种强制模式(每条规则集可独立设置)
- 强制规则
命中拒绝规则时,直接阻止程序启动,并写入安全事件日志;生产环境安全管控模式。
- 仅审核
不拦截程序,仅记录运行日志到事件查看器,用于上线前规则灰度测试、排查白名单遗漏。
截图提示:若未手动配置强制,系统默认使用「强制规则」模式。
界面功能按钮
配置规则强制:打开设置窗口,分别为 4 类规则切换「强制 / 仅审核」模式;有关规则强制的详细信息:跳转微软官方说明文档;有关AppLocker 的详细信息:组件功能介绍;Windows 的哪些版本支持AppLocker?:查看系统版本兼容列表。
四、规则匹配的 4 种条件(创建规则时可选)
- 发布者条件(推荐企业批量)
根据软件数字签名厂商、产品名称、版本号匹配,例如只允许微软、企业自研签名程序运行,适配 Office、企业标准化软件。
- 文件哈希条件
读取文件唯一 SHA256 哈希值精准匹配,适合无签名小众工具、单文件管控;文件更新后哈希改变,规则自动失效。
- 路径条件
通过文件目录路径放行,例如仅允许
C:\Program Files、C:\Windows目录程序,拦截桌面、下载文件夹未知程序;粒度粗,易被路径绕过。 - 文件名称条件
按文件名 / 后缀匹配,极少单独使用,一般搭配其他条件组合。
五、典型应用场景
- 企业终端白名单管控
仅放行系统自带程序、标准化办公软件,拦截 QQ、浏览器、破解工具、未知 exe,防止恶意软件、私装软件。
- 工控 / 自助终端锁定
仅允许产线控制软件运行,禁止任何脚本、第三方工具,杜绝篡改产线程序。
- 服务器加固
限制管理员仅运行指定运维脚本,拦截恶意后门、未知可执行文件,降低入侵风险。
- 脚本安全管控
阻止未授权 PowerShell / 批处理脚本执行,防范横向渗透、勒索病毒脚本。
- 上线前灰度审计
全部规则设置「仅审核」模式,采集一周程序运行日志,补全白名单后切换为强制模式,避免误拦截业务软件。
六、底层依赖与配套运维
1. 必需服务
AppIDSvc(应用程序标识服务):负责程序哈希校验、规则匹配、拦截动作,禁用后 AppLocker 完全不生效。2. 日志查看路径
Microsoft\Windows\AppLockerEXE and DLL:可执行程序拦截 / 放行日志MSI and Installer:安装包日志Script:脚本运行日志Packaged app-Execution:UWP 商店应用日志
3. 生效命令
# 刷新本地组策略
gpupdate /force
# 重启AppID服务立即加载规则
net stop appidsvc && net start appidsvc
七、与软件限制策略(SRP)核心区别
| 特性 | AppLocker | 传统软件限制策略 (SRP) |
|---|---|---|
| 签名发布者规则 | ✅ 支持,批量管理 | ❌ 仅哈希 / 路径,无签名批量 |
| 分类型独立强制模式 | ✅ exe / 脚本 / 安装包分开管控 | ❌ 全局统一模式 |
| UWP 封装应用管控 | ✅ 原生支持 | ❌ 完全不支持 |
| 精细化审计日志 | ✅ 独立分类事件日志 | ❌ 日志混杂难以排查 |
| 系统支持 | Win10/11 企业版、Server 全系 | 所有 Windows 版本(含家庭版) |
八、常见坑点⚠️
- 忘记启动 AppIDSvc 服务,策略配置后无拦截效果;
- 仅配置放行规则、未配置默认拒绝规则:AppLocker 默认允许所有未匹配程序,必须手动添加「拒绝所有」兜底规则;
- 路径规则存在绕过风险:攻击者复制程序到允许目录即可绕过,生产优先使用发布者 / 哈希规则;
- 家庭版 Windows 无 AppLocker 组件,仅专业版 / 企业版可用。
AppLocker(应用程序控制策略)完整拆解
基础标识
前代技术:软件限制策略(SRP);新一代替代方案:Windows Defender 应用控制(WDAC / App Control for Business)
一、底层原理
核心定位
- 内核层:appid.sys(minifilter 驱动)
注册进程创建通知回调
PsSetCreateProcessNotifyRoutineEx,捕获进程创建、DLL 加载事件;收集文件元信息,通过 RPC 把校验请求下发用户态服务。 - 用户态引擎:AppIDSvc(Application Identity 服务)
完成规则匹配、签名校验、SID 判定、日志输出;向内核返回放行 / 拒绝决策。
- 策略持久层:注册表存储 XML 策略,运行时转为 SDDL 安全描述符格式
关键规则优先级
- 明确拒绝规则 > 允许规则
- 同规则集内:精准匹配 > 通配路径
- 多 GPO 部署:后写入 GPO 优先级更高
- 五大独立规则集合互相隔离:可执行 / Windows 安装程序 / 脚本 / DLL / 打包应用;每类可独立开启「仅审核 / 强制实施」
执行边界重点
- AppLocker 拦截发生在进程创建阶段(CreateProcess);无法防御反射注入、内存加载无文件攻击;
- DLL 规则默认不启用(性能开销大);
- 本地管理员具备停止 AppIDSvc、清理注册表策略实现绕过的能力;
- 区别 WDAC:WDAC 在内核代码完整性层拦截,不受用户态服务启停影响,安全性更强。
二、依赖文件、进程、组件
1. 核心二进制
%SystemRoot%\System32\drivers\appid.sys:内核 minifilter 驱动,事件捕获%SystemRoot%\System32\appid.dll:用户态校验逻辑库gpsvc.dll:组策略客户端引擎,同步 GPO 策略wintrust.dll:Authenticode 数字签名验证srpapi.dll:软件限制策略兼容 API
2. 核心服务
⚠️硬性依赖:AppIDSvc 停止 → AppLocker 完全失效;默认启动类型为「手动」,必须组策略 / 脚本改为自动。
3. 注册表存储路径
- GPO 落地原始策略(XML)
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\SrpV2 - 内核生效 SDDL 编译策略
HKLM\SYSTEM\CurrentControlSet\Control\Srp\Gp - 证书缓存
HKLM\SYSTEM\CurrentControlSet\Control\AppID\CertStore
4. 日志通道
三、依赖关系图谱
管理员在gpedit.msc/GPMC配置AppLocker规则
↓
gpsvc(组策略客户端)将策略写入注册表 SrpV2
↓
AppIDSvc监测注册表变更,加载XML策略,编译为SDDL规则集存入内存
↓
AppIDSvc 通过IOCTL与内核驱动 appid.sys 建立通信通道
↓
用户调用CreateProcess / LoadLibrary尝试启动程序
↓
appid.sys 捕获事件,提取文件路径、哈希、发布者信息
↓
RPC请求发送至AppIDSvc执行规则匹配(匹配条件:发布者/路径/哈希;附带访问者SID)
↓
AppIDSvc 返回【允许 / 拒绝】决策并写入AppLocker事件日志
↓
内核驱动根据结果:放行进程创建 / 返回ACCESS_DENIED终止进程
四、两条核心逻辑链路
链路 A:策略加载链路
- 管理员在 AppLocker 节点创建规则(发布者 / 路径 / 哈希),配置强制模式;
gpupdate /force触发组策略同步;域终端从 AD 拉取 GPO;- gpsvc 把策略序列化写入
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\SrpV2; - AppIDSvc 收到注册表变更通知,重载全部规则;
- 规则实时生效,无需重启操作系统。
链路 B:程序执行校验链路
- 用户运行
program.exe,系统调用 CreateProcess; - appid.sys 内核回调捕获进程创建事件;
- 收集文件元数据(路径、签名、SHA256 哈希);
- RPC 调用 AppIDSvc,传入文件信息 + 当前登录用户 SID;
- AppIDSvc 遍历同类型规则集:优先匹配拒绝规则;
- 命中拒绝 → 返回拒绝,日志记录事件 ID 8002;进程创建失败;
- 命中允许 → 返回放行;
- 无任何匹配 → 默认拒绝(白名单模式);
- 内核接收判定结果,完成拦截或放行。
五、配套链(工具、协同组件、相邻技术)
1. PowerShell 管理命令(AppLocker 模块)
Get-AppLockerPolicy -Local
Set-AppLockerPolicy
Get-AppLockerFileInformation
Test-AppLockerPolicy
Get-AppLockerRuleCollection
2. 协同企业组件
- Active Directory + GPMC:域批量下发 AppLocker 策略(企业标准部署方式)
- Microsoft Intune:现代终端管理推送 AppLocker XML 策略
- Windows Defender:与应用控制形成纵深防御
- WDAC(App Control for Business):可联动托管安装程序(Managed Installer)场景
- 事件收集服务器:集中采集 AppLocker 拦截日志,威胁审计
3. 相邻技术对比
| 技术 | 管控层级 | 核心依赖 | 能否按用户分组 |
|---|---|---|---|
| SRP 软件限制策略 | 用户态 | 无独立服务 | 较弱 |
| AppLocker | 内核回调 + 用户态引擎 | AppIDSvc | ✅支持按用户 / 组 SID |
| WDAC App Control | 内核代码完整性 CI | 无需额外服务 | ❌整机策略,不区分用户 |
六、安全提醒
- AppIDSvc 建议强制设置为自动启动;攻击者本地管理员权限可停止服务绕过管控;
- 优先使用发布者规则(软件升级持续生效),谨慎大量使用哈希规则;
- 生产上线前务必先启用「仅审核」模式运行一段时间,避免误拦截业务程序;
- DLL 规则会显著增加系统 CPU 开销,非必要不开启;
- AppLocker 无法防护内存无文件攻击、反射 DLL 注入,不能单独作为唯一边界防护;
- 不要依靠路径规则防御攻击者改名、移动恶意程序;
- 高安全等级服务器 / 终端长期规划建议迁移至 WDAC;AppLocker 适合中小型桌面终端。
可直接并入总表的标准化条目
功能名称 (中文):AppLocker(应用程序控制策略)功能描述 (英文):Provides application execution control policy engine, restricts running executables, MSI installers, scripts, DLLs and packaged apps via publisher/path/hash rules, supports per-user/group access control.应用场景:企业终端应用白名单管控、限制非授权软件运行、防御恶意脚本、桌面终端标准化运维、隔离未知程序执行。安全提醒:依赖 AppIDSvc 服务,管理员可停止服务实现绕过;无法防御内存注入攻击;优先使用发布者规则;上线前使用审核模式验证;高安全场景建议搭配 WDAC 纵深防护。配套链:AppIDSvc 服务、appid.sys 内核驱动、组策略 GPO/Intune、PowerShell AppLocker 模块、事件日志审计、WDAC 托管安装程序联动。
AppLocker 完整底层原理
一、整体架构分层
- 组策略配置存储层(注册表 / GPO)
- 用户态调度层:AppIDSvc 服务(核心规则解析、预校验)
- 内核过滤层:AppId.sys 驱动(实时拦截程序加载)
- 系统执行拦截钩子:Windows 映像加载器 NtCreateProcess/NtLoadImage
双击exe/启动脚本 → NtCreateProcess 内核API
↓ 内核驱动 AppId.sys 截获映像加载事件
↓ 向用户态 AppIDSvc 请求规则校验
AppIDSvc 读取注册表AppLocker规则库,完成发布者/哈希/路径匹配
↓ 返回「允许/拒绝」判定结果至内核驱动
驱动根据结果放行进程 或 直接终止进程并写入安全审计日志
核心分工
- AppId.sys(内核模式驱动):无法绕过的底层拦截点,所有程序、脚本、MSI、UWP 加载都会触发钩子;
- AppIDSvc(应用程序标识服务,用户态):解析 GPO 下发的规则、校验数字签名、计算文件哈希、缓存规则匹配结果;
- 二者缺一不可:仅配置策略但停止
AppIDSvc,驱动无规则可校验,AppLocker 完全失效(截图警告栏提示的核心前提)。
二、规则存储与加载底层机制
1. 本地持久存储(注册表路径)
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2
Exe:可执行 exe/com 规则Msi:MSI 安装程序规则Script:bat/ps1/vbs 脚本规则PackagedApps:UWP/MSIX 封装应用规则
gpclient每 90 分钟拉取域 GPO,覆盖此注册表项;执行gpupdate /force强制同步。2. 服务启动加载流程
- 系统启动时,
AppIDSvc自动读取SrpV2下全部规则,编译为内存高速匹配表; - 读取「规则强制模式」配置(强制拦截 / 仅审计);
- 预缓存系统目录(C:\Windows、Program Files)文件哈希、数字签名,加速后续匹配;
- 向内核驱动
AppId.sys注册回调句柄,建立内核 - 用户态通信通道。
3. 规则匹配优先级(从上至下命中即终止)
- 显式拒绝规则(优先级最高)
- 显式允许规则
- 兜底默认行为:无匹配规则时,默认全部允许(关键安全坑点,必须手动添加「拒绝所有」兜底规则)
发布者签名 > 文件哈希 > 文件路径 > 文件名三、四大规则集底层拦截逻辑
1. 可执行规则(EXE/COM,NtCreateProcess 钩子)
- 发布者校验:读取 PE 文件内嵌 Authenticode 签名,解析厂商、产品、版本,和规则签名信息比对;
- 哈希校验:服务计算文件 SHA256 哈希,和规则内预存哈希精准匹配;文件修改 / 更新后哈希变更,规则自动失效;
- 路径校验:简单字符串前缀匹配,仅判断文件所在目录,无文件完整性校验,易被复制文件绕过。
2. Windows 安装程序规则(MSI/MSP)
msiexec.exe 加载安装包行为,单独解析 MSI 文件内部签名、包哈希;管控软件安装 / 卸载流程,阻止私自安装程序。3. 脚本规则(BAT/CMD/PS1/VBS/JS)
- 驱动捕获解释器打开脚本文件的 IRP 请求;
- AppIDSvc 读取脚本文件哈希 / 路径,匹配脚本专属规则;
- 即使修改脚本后缀、改名,底层会识别真实文件内容,仍会触发校验。
4. 封装应用规则(UWP/MSIX)
CreatePackageProcess专用 API,读取应用包的 Microsoft Store 数字签名、包家族名称、版本,基于商店签名做批量放行。四、内核驱动 AppId.sys 核心拦截机制
- 映像加载回调注册
驱动向 Windows 内存管理器注册
PsSetLoadImageNotifyRoutine全局回调,所有用户态代码加载进内存时都会触发回调,包括 exe、dll、脚本解释器、MSI 安装程序,无任何绕过入口。 - 同步阻塞校验
进程加载会暂停在内核层,等待 AppIDSvc 返回校验结果:
- 允许:恢复进程创建,程序正常启动;
- 拒绝(强制模式):内核直接终止进程,弹出「此应用被组策略阻止」弹窗;
- 仅审计模式:放行进程,仅写入 AppLocker 事件日志记录违规行为。
- 日志内核落地
无论放行 / 拦截,驱动直接向 ETW(事件跟踪)写入原始事件,再由服务转发至独立 AppLocker 事件日志通道,日志无法被普通用户删除篡改。
五、两种强制模式底层差异(截图「配置规则强制」核心)
模式 1:强制规则(生产安全模式)
- AppId.sys 内核层直接终止进程,程序完全无法启动;
- 写入
AppLocker/EXE and DLL错误事件日志,记录用户名、程序路径、拒绝规则 ID; - 弹窗提示:管理员已阻止此应用运行。
模式 2:仅审核(灰度测试模式)
底层开关存储于注册表HKLM\SrpV2\<规则类型>\EnforcementMode:0 = 仅审核,1 = 强制拦截。
六、关键底层依赖组件
| 组件名称 | 类型 | 层级 | 核心作用 |
|---|---|---|---|
| AppId.sys | 内核驱动 | 内核模式 | 全局拦截所有程序加载、发起校验请求、终止违规进程 |
| AppIDSvc | 服务(svchost) | 用户态 | 解析 GPO 规则、校验签名 / 哈希、缓存匹配表、和内核驱动通信 |
| wintrust.dll | 系统库 | 用户态 | Authenticode 数字签名解析、证书链校验(发布者规则依赖) |
| crypt32.dll | 加密库 | 用户态 | SHA256 文件哈希计算(哈希规则依赖) |
| gpclient.dll | 组策略客户端 | 用户态 | 域 GPO 同步,更新 SrpV2 注册表规则库 |
| ETW 事件跟踪子系统 | 内核日志 | 内核 / 用户态 | 存储 AppLocker 审计日志,独立隔离日志通道 |
七、与传统软件限制策略(SRP)底层本质区别
- 拦截层不同
SRP 完全运行在用户态,仅靠资源管理器钩子,可被第三方进程绕过;AppLocker 拥有内核驱动
AppId.sys,系统底层拦截,无简单绕过途径。 - 签名校验能力
SRP 无原生 Authenticode 签名解析;AppLocker 深度集成 wintrust,支持按厂商批量放行软件。
- 规则隔离度
AppLocker 四类规则独立存储、独立强制模式;SRP 全局一套规则,无法分开管控脚本、安装包。
- UWP 支持
SRP 无封装应用拦截逻辑;AppLocker 原生挂钩商店应用专用创建 API。
八、底层不可绕过约束与限制
- 系统核心进程(ntoskrnl、smss、wininit 等)不受 AppLocker 管控,保证系统启动;
- 管理员可停止
AppIDSvc服务临时解除管控,但系统会记录服务停止安全日志,可被审计捕获; - 路径规则存在逻辑缺陷:若放行
C:\Temp,攻击者将恶意 exe 复制至此目录即可绕过,底层仅匹配路径字符串,不校验文件身份;生产环境优先使用发布者 / 哈希规则; - 32/64 位程序独立校验,32 位规则不会管控 64 位程序,需两套规则全覆盖。
九、完整执行示例(拦截未知 exe 底层数据流)
- 用户双击
D:\download\unknown.exe,系统调用 NtCreateProcess; - AppId.sys 内核回调捕获映像加载事件,暂停进程创建;
- 驱动发送 IPC 请求至 AppIDSvc,传入文件路径、PE 元数据;
- AppIDSvc 读取注册表全部 EXE 规则,依次匹配发布者→哈希→路径;
- 无任何允许规则命中,匹配兜底默认允许之外无放行,触发隐式拒绝;
- 配置为「强制规则」模式,驱动收到拒绝指令,内核直接销毁进程句柄;
- ETW 写入拦截事件日志,资源管理器弹出策略阻止提示框。
AppLocker 完整配套组件链(分层上下游全链路)
一、第一层:配置编辑配套(图形 / 命令行策略编辑入口)
1. 本地单机图形工具(截图对应界面)
secpol.msc本地安全策略管理器路径:计算机配置 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker(你截图的界面),仅本机单机配置。- 配套 MUI 语言包:
secpol.mui,提供中文界面提示文本。
2. 域批量管理工具(企业规模化配套)
gpmc.msc组策略管理控制台(GPMC)域环境统一创建、编辑、分发 AppLocker GPO,链接到 OU 批量下发终端策略。- AGPM(高级组策略管理,MDOP 套件)
GPO 版本管控、回滚、权限审批,大型企业多管理员协同配套工具。
- RSAT 远程服务器管理工具
非域控工作站远程编辑域 GPO,无需登录域控主机即可维护 AppLocker 规则。
3. PowerShell 命令行自动化配套(无 GUI 批量运维)
# 生成文件哈希规则、导出策略、分析审计日志
New-AppLockerFileInformation
Get-AppLockerPolicy / Set-AppLockerPolicy
Get-AppLockerFileInformation
二、第二层:规则存储与格式转换配套(策略持久化中间层)
1. 注册表持久存储容器
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2
Exe/Msi/Script/PackagedApps,GPO / 本地策略写入 XML 格式原始规则。2. 规则转换执行程序(AppIDSvc 依赖)
AppIDPolicyConverter.exe检测注册表规则变更后自动运行,将 XML 规则转换为内核可识别的 SDDL/ACE 二进制规则缓存,存放于C:\Windows\System32\AppLocker\*.applocker二进制规则文件,内核驱动直接读取缓存加速匹配。AppIdCertStoreCheck.exe每日自动扫描系统根证书库,预缓存软件 Authenticode 签名证书,加速发布者规则校验,证书变更时主动刷新缓存。
3. 底层加密 / 哈希 / 签名解析依赖库
wintrust.dll:Authenticode 数字签名解析,发布者规则核心依赖;crypt32.dll:SHA256 文件哈希计算,哈希规则文件指纹生成;cryptui.dll:证书弹窗、签名可视化校验辅助库。
三、第三层:用户态核心服务配套(规则运算中枢,截图警告依赖)
核心主体:AppIDSvc(应用程序标识服务)
%windir%\System32\svchost.exe -k netsvcs,加载AppIdSvc.dll实现核心逻辑,AppLocker 强制拦截的必要前置组件,停止服务则所有规则完全失效(截图黄色警告提示)Microsoft ...。AppIDSvc 内部配套子能力
- 规则缓存引擎:预加载转换后的二进制规则表,加速内核校验请求响应;
- 文件属性提取:读取 PE 头、签名、路径、哈希,封装校验参数下发内核;
- IPC 通信通道:与内核
AppId.sys双向消息交互; - 证书链校验:对接系统证书存储,验证软件发布者签名合法性;
- ETW 日志转发:将放行 / 拦截事件推送至系统独立 AppLocker 日志通道。
配套系统服务依赖
wuauserv(可选):签名证书自动更新,维护信任根证书;PolicyAgent(IPSec):配合 IPSec 加密软件分发场景;WinHttpAutoProxySvc:远程域控 GPO 策略同步网络依赖。
四、第四层:内核拦截驱动配套(底层不可绕过执行过滤)
核心驱动:AppId.sys(%windir%\System32\drivers\AppId.sys)
PsSetLoadImageNotifyRoutine,所有进程、DLL、脚本解释器加载都会触发内核阻塞校验Microsoft ...。驱动配套内核组件
- NT 内核进程管理器(ntoskrnl.exe):提供进程创建 / 映像加载回调钩子;
- ETW 内核日志子系统:拦截事件直接写入内核事件流,普通用户无法篡改日志;
- KTM 事务管理器:防止规则缓存文件被恶意删除 / 篡改;
- WRP Windows 资源保护:锁定
AppId.sys、AppIdSvc.dll,禁止第三方替换驱动绕过管控。
拦截分工配套
| 文件类型 | 内核拦截钩子 | 配套校验逻辑 |
|---|---|---|
| EXE/COM/DLL | NtCreateProcess / NtLoadImage | 全内核阻塞,同步等待 AppIDSvc 返回判定 |
| MSI/MSP 安装包 | msiexec.exe 映像加载回调 | 单独解析 MSI 内部数字签名 |
| BAT/PS1/VBS 脚本 | 脚本解释器 IRP 文件读取回调 | 拦截解释器打开脚本文件动作 |
| UWP/MSIX 封装应用 | CreatePackageProcess 专用 API 钩子 | 读取商店应用包家族签名信息 |
五、第五层:审计、运维、协同配套工具链(后置监控、兼容替代、安全联动)
1. 日志审计配套(追溯放行 / 拦截行为)
- 事件查看器(eventvwr.msc)独立日志通道
路径:应用程序和服务日志 → Microsoft\Windows\AppLocker,分 3 个子日志:
- EXE and DLL:可执行程序拦截日志
- MSI and Script:安装包、脚本执行日志
- Packaged app:UWP 商店应用日志Microsoft ...
- Windows 事件转发(WEF)
批量终端日志集中推送至 SIEM(Splunk/ELK/ 企业安全平台),做全网应用访问审计;
- 自定义拦截弹窗 URL 配套组策略
配置用户被阻止程序时跳转企业内部合规说明页面,配套 GPO 策略。
2. 同源兼容配套:软件限制策略 SRP(旧版应用控制)
- 共存逻辑:AppLocker 与 SRP 共用
AppIdSvc.dll服务,同一 GPO 同时配置时AppLocker 优先级更高,覆盖 SRP 规则; - 定位区分:SRP 仅支持哈希 / 路径,无发布者签名、无独立规则强制模式、不支持 UWP,作为老旧 Windows 版本兼容兜底方案。
3. 现代应用控制替代配套(同赛道上层方案)
- WDAC(Windows Defender 应用控制,原名 Device Guard)
更底层内核防护,支持驱动级白名单,适合服务器高安全场景;AppLocker 轻量化、易运维,适合终端桌面场景,二者互补;
- Intune MDM 云端配套
无域环境终端通过 Intune 下发 AppLocker 策略,替代传统 AD 域 GPO,云设备管理配套。
4. 系统安全联动配套组件
- Windows Defender 杀毒引擎
AppLocker 拦截未知程序后,自动推送文件至 Defender 云查杀;Defender 检出恶意程序后同步触发 AppLocker 黑名单;
- 证书服务 CA(AD CS)
企业自研软件签名证书签发,支撑 AppLocker 发布者批量放行规则;
- Sysmon(系统监控工具)
补充进程创建全量日志,与 AppLocker 日志联动溯源恶意程序绕过行为;
- 系统还原 / 卷影副本
规则文件被篡改后可通过卷影副本恢复原始 AppLocker 二进制规则缓存。
5. 运维生效 / 排错配套命令工具
# 刷新组策略,同步AppLocker规则
gpupdate /force
# 重启核心AppID服务加载新规则
net stop appidsvc && net start appidsvc
# 查看AppLocker事件日志
wevtutil qe Microsoft-Windows-AppLocker/EXEandDLL
# PowerShell导出完整策略备份
Get-AppLockerPolicy -Local -XML > AppLockerRules.xml
六、完整端到端数据流配套链路
管理员编辑策略:secpol.msc / GPMC → 写入注册表SrpV2原始XML规则
↓ AppIDPolicyConverter.exe 自动转换二进制规则缓存
AppIDSvc 服务启动加载缓存规则,建立与AppId.sys内核IPC通道
↓ 用户双击exe触发NtCreateProcess内核API
AppId.sys 内核钩子拦截进程创建,阻塞并发送文件元数据至AppIDSvc
↓ AppIDSvc 完成签名/哈希/路径规则匹配,返回允许/拒绝判定
AppId.sys 内核执行动作:放行进程 / 直接销毁进程句柄
↓ ETW 内核事件写入AppLocker独立日志通道
日志同步至本地事件查看器 / 通过WEF推送SIEM审计平台
七、配套链核心约束与依赖总结
- 强依赖不可缺失:
AppIDSvc服务必须设为自动启动、内核驱动AppId.sys不可删除,二者任一失效则 AppLocker 完全失效; - 分层兼容边界:SRP 为旧版兼容配套,WDAC 为高安全替代配套,AppLocker 主打轻量化终端白名单;
- 批量分发配套区分:内网 AD 域用 GPMC/GPO,云无域设备用 Intune MDM;
- 规则格式配套:原始 XML 规则(注册表)→ 二进制缓存规则(AppLocker 目录),两层存储配套保障内核快速匹配。
一、AppLocker 规则存储转换层完整详解
1. 分层结构(两级存储 + 自动转换引擎)
(1)原始持久存储:注册表 SrpV2 节点
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2- 4 个独立子项对应 4 大类规则集:
Exe、Msi、Script、PackagedApps - 存储格式:标准 XML 文本,完整保存规则元数据:匹配条件(发布者 / 哈希 / 路径)、允许 / 拒绝动作、强制模式、注释、版本 ID;
- 写入来源:
- 本地安全策略
secpol.msc图形界面编辑; - 域 GPO 通过
gpclient同步下发; - PowerShell
Set-AppLockerPolicy脚本写入;
- 本地安全策略
- 生命周期:组策略刷新、手动编辑后立即更新注册表 XML 内容。
(2)自动转换引擎:AppIDPolicyConverter.exe
C:\Windows\System32\AppIDPolicyConverter.exe,后台静默自动运行,无人工启动交互
- 注册表
SrpV2下 XML 规则发生变更; - 系统开机启动、AppIDSvc 服务重启;
- 执行
gpupdate /force刷新策略;转换核心逻辑: - 读取注册表原始 XML 规则;
- 解析、校验规则语法合法性,过滤无效冲突规则;
- 将文本 XML 编译为二进制结构化缓存文件(SDDL 安全描述符 + 哈希匹配表);
- 输出缓存文件至目录:
C:\Windows\System32\AppLocker\,后缀.applocker; - 同步写入强制模式配置到注册表
EnforcementMode子键(0 = 仅审计,1 = 强制拦截)。
(3)二进制高速缓存层(服务 / 内核读取源)
- XML 文本解析开销大,二进制预编译后大幅降低 AppIDSvc 实时匹配耗时;
- 内核驱动
AppId.sys仅可读取二进制结构化数据,无法解析 XML;文件 ACL 保护:WRP 系统资源保护锁定,普通管理员无法删除 / 篡改缓存文件;读取主体:AppIDSvc 启动时直接加载此目录全部缓存,生成内存高速匹配哈希表。
2. 完整数据流(编辑→存储→转换→加载)
管理员通过secpol.msc/PowerShell编辑规则
↓ 写入注册表 SrpV2 XML原始规则
AppIDPolicyConverter.exe 自动检测变更,启动编译转换
↓ 生成 .applocker 二进制缓存至 System32\AppLocker
系统启动/AppIDSvc重启 → 服务加载二进制缓存构建内存匹配表
↓ IPC通道下发匹配索引至内核AppId.sys驱动
程序加载触发内核校验,直接使用预编译缓存快速判定放行/拦截
3. 配套辅助转换组件
- AppIdCertStoreCheck.exe:预缓存软件 Authenticode 签名证书,加速发布者规则校验;
- crypt32.dll/wintrust.dll:转换阶段计算文件哈希、解析数字签名元数据嵌入缓存;
- WRP 保护机制:锁定注册表 SrpV2 项与 AppLocker 缓存目录,防止恶意篡改规则绕过管控。
4. 转换层故障典型现象
- 转换失败(XML 语法错误、冲突规则):缓存文件不生成,AppLocker 规则全部失效,仅审计日志报错;
- 手动删除
.applocker缓存:服务下次重启自动重新执行转换生成缓存; - 停止 AppIDPolicyConverter 无手动启动入口,只能通过修改策略、重启服务触发重新转换。
二、PowerShell 自动化管理 AppLocker 完整实操方案
1. 核心专用 Cmdlet 清单(内置 AppLocker 模块,无需额外安装)
| 命令 | 核心用途 |
|---|---|
Get-AppLockerFileInformation |
扫描目录生成文件哈希、采集程序清单 |
New-AppLockerPolicy |
基于文件信息批量生成全新 AppLocker 策略对象 |
Get-AppLockerPolicy |
读取本地 / 域现有策略,导出 XML 备份 |
Set-AppLockerPolicy |
将策略写入本地注册表或域 GPO,生效规则 |
Test-AppLockerPolicy |
模拟校验指定文件是否会被现有规则拦截 |
2. 高频自动化实操示例
示例 1:扫描系统目录自动生成白名单策略(装机标准化)
# 扫描系统、程序目录所有exe,采集文件哈希信息
$fileInfo = Get-ChildItem "C:\Windows","C:\Program Files" -Recurse -Include *.exe | Get-AppLockerFileInformation
# 基于采集信息自动生成「允许」发布者/哈希规则
$newPolicy = New-AppLockerPolicy -FileInformation $fileInfo -RuleType Exe -Allow
# 将策略写入本地计算机注册表,立即生效
Set-AppLockerPolicy -Local -Policy $newPolicy
# 重启服务加载规则
net stop AppIDSvc && net start AppIDSvc
示例 2:导出 / 备份本地策略(跨设备复用)
# 导出本地全部4类规则为XML备份文件
Get-AppLockerPolicy -Local -XML > C:\backup\AppLocker_Rules.xml
# 导入备份策略恢复到本机
$restorePolicy = Get-AppLockerPolicy -XMLPath "C:\backup\AppLocker_Rules.xml"
Set-AppLockerPolicy -Local -Policy $restorePolicy
示例 3:添加单条发布者放行规则(企业 Office 套件)
# 创建允许微软Office发布者的EXE规则
$officeRule = New-AppLockerPolicy -Publisher "*Microsoft Corporation*,*Office*" -RuleType Exe -Allow
# 读取现有本地策略,合并新规则写入
$currentPolicy = Get-AppLockerPolicy -Local
$currentPolicy.ExeRules += $officeRule.ExeRules
Set-AppLockerPolicy -Local -Policy $currentPolicy
示例 4:测试文件是否会被策略拦截(上线前灰度校验)
# 模拟校验记事本程序
Test-AppLockerPolicy -Path "C:\Windows\notepad.exe" -Local
# 输出结果包含匹配规则、动作(允许/拒绝)、强制模式
示例 5:批量设置规则强制模式(全部切换为仅审计灰度)
$policy = Get-AppLockerPolicy -Local
# 0=仅审计,1=强制拦截
$policy.EnforcementMode = 0
Set-AppLockerPolicy -Local -Policy $policy
3. 域环境批量运维拓展
- 远程读取域 GPO 策略:
Get-AppLockerPolicy -Domain -GPOName "终端标准白名单" - 批量给 OU 下发策略:结合
New-GPO、New-GPLink实现域终端全自动部署; - 日志自动化分析:搭配
Get-WinEvent读取 AppLocker 拦截日志,自动生成缺失白名单程序清单。
4. 配套生效排错命令
# 刷新组策略同步PowerShell写入的规则
gpupdate /force
# 查看AppLocker拦截审计日志
wevtutil qe Microsoft-Windows-AppLocker/EXEandDLL
三、AppLocker 内核拦截驱动层(AppId.sys)工作原理
1. 驱动基础信息
%windir%\System32\drivers\AppId.sys,内核模式驱动,系统启动自动加载;
ntoskrnl.exe 进程管理器、ETW 内核日志子系统、WRP 资源保护。2. 核心拦截机制:全局映像加载回调
PsSetLoadImageNotifyRoutine 注册全局映像加载回调,操作系统内所有可执行代码加载进内存时,都会触发此回调,覆盖全部管控对象:- EXE/COM 进程创建(
NtCreateProcess) - DLL 动态库加载(
NtLoadImage) - MSI 安装包加载(msiexec 映像回调)
- BAT/PS1/VBS 脚本(脚本解释器文件 IRP 读取回调)
- UWP/MSIX 封装应用(专用
CreatePackageProcessAPI 钩子)
3. 完整内核校验执行链路
- 用户启动程序,系统发起进程 / 映像加载内核调用;
- AppId.sys 回调触发,同步阻塞进程创建流程,暂停程序加载;
- 驱动提取文件元数据:完整路径、PE 签名信息、文件句柄;
- 通过内核 - 用户态 IPC 通道,将元数据发送至用户态
AppIDSvc服务; - AppIDSvc 读取二进制缓存规则,完成发布者 / 哈希 / 路径匹配,返回「允许 / 拒绝」判定;
- 驱动根据判定结果执行两种动作:
- 允许:恢复进程创建,程序正常运行;写入 ETW 放行日志;
- 拒绝(强制模式):内核直接销毁进程句柄,终止加载,弹出策略阻止弹窗;写入错误审计日志;
- 拒绝(仅审计模式):放行进程,仅记录违规日志,不阻断程序。
- 全部事件直接写入内核 ETW 日志流,日志独立隔离,普通用户无法篡改删除。
4. 驱动层关键底层特性
(1)不可绕过拦截边界
(2)分层权限隔离
AppId.sys驱动,仅能停止上层 AppIDSvc 服务临时失效规则。(3)缓存加速机制
(4)区分 4 类规则独立拦截通道
5. 驱动失效边界(唯一可控关闭方式)
- 停止用户态
AppIDSvc服务:驱动接收不到规则匹配结果,默认全部放行程序; - 通过注册表禁用 AppId.sys 驱动(需重启电脑);
- 家庭版 Windows 无 AppId.sys 驱动,不支持 AppLocker 功能。
6. 与 WDAC 驱动层核心差异
- AppId.sys:轻量映像回调拦截,仅管控用户层应用,不拦截内核驱动文件;适合终端桌面轻量化白名单;
- WDAC(Device Guard)驱动:底层 FLT 过滤驱动,可管控第三方内核驱动加载,服务器高安全加固专用。
一、二进制高速缓存层的存储路径
1. 核心目录
%SystemRoot%\System32\AppLocker\
C:\Windows\System32\AppLocker\
2. 缓存文件说明
- 文件后缀:
.applocker,4 类规则对应独立缓存文件:ExeRules.applocker:可执行程序二进制规则缓存MsiRules.applocker:MSI 安装包规则缓存ScriptRules.applocker:脚本规则缓存PackagedAppsRules.applocker:UWP 封装应用规则缓存
- 生成主体:
AppIDPolicyConverter.exe自动编译注册表 XML 规则后输出到此目录 - 权限保护:受 WRP(Windows 资源保护)锁定,普通管理员无删除 / 修改权限;仅系统账户
NT SERVICE\TrustedInstaller可写入更新 - 作用:AppIDSvc 服务启动时直接加载该目录二进制缓存,供给内核
AppId.sys快速匹配程序放行 / 拦截规则
3. 配套辅助缓存文件
CertCache.dat,预存软件 Authenticode 证书,加速发布者规则校验。二、如何手动编辑 AppLocker 的规则
方式 1:图形界面本地安全策略(最标准、推荐单机手动编辑)
- 运行
secpol.msc打开本地组策略编辑器; - 导航路径:计算机配置 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker;
- 展开 4 类规则(可执行 / Windows 安装程序 / 脚本 / 封装应用),右键「创建新规则」;
- 配置匹配条件(发布者 / 哈希 / 路径)、允许 / 拒绝动作、例外、注释;
- 配置完成点击确定,自动写入注册表
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2,后台自动触发AppIDPolicyConverter.exe重新编译二进制缓存; - 可选:左侧「配置规则强制」切换「强制规则 / 仅审核」模式。
方式 2:域环境 GPMC 组策略编辑器(批量域终端手动编辑)
- 运行
gpmc.msc组策略管理; - 新建 / 编辑目标 GPO,定位到计算机配置 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker;
- 图形化创建 / 修改规则,保存后客户端 90 分钟自动同步;执行
gpupdate /force可强制拉取策略。
方式 3:手动修改注册表原始 XML 规则(底层手动编辑,仅高级运维使用)
风险提示:XML 格式写错会导致转换失败,AppLocker 完全失效,操作前务必备份注册表。
- 打开注册表编辑器
regedit.exe,定位根路径:plaintextHKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2 - 4 个子项
Exe/Msi/Script/PackagedApps分别存放 4 类规则 XML 字符串; - 双击
Value字符串值,直接编辑 XML 文本,修改规则条件、动作; - 关闭注册表,自动触发转换程序重新生成二进制缓存;
- 验证:重启
AppIDSvc服务,查看C:\Windows\System32\AppLocker\缓存文件更新时间。
方式 4:XML 策略文件手动编辑(跨设备导入导出)
- PowerShell 导出完整策略 XML:
powershell
Get-AppLockerPolicy -Local -XML > AppLockerBackup.xml - 使用记事本 / VS Code 打开 XML 文件,手动修改规则节点;
- 修改完成后导入回本机生效:
powershell
$policy = Get-AppLockerPolicy -XMLPath "C:\temp\AppLockerBackup.xml" Set-AppLockerPolicy -Local -Policy $policy
禁止操作
C:\Windows\System32\AppLocker\*.applocker二进制缓存,无标准化文本结构,手动修改会触发规则校验崩溃,所有程序无管控放行。三、如何使用 PowerShell 配置 AppLocker 策略
前置说明
1. 核心 Cmdlet 总览
| 命令 | 核心功能 |
|---|---|
Get-AppLockerFileInformation |
扫描目录采集程序哈希、元数据 |
New-AppLockerPolicy |
批量生成规则策略对象 |
Get-AppLockerPolicy |
读取本地 / 域现有策略、导出 XML 备份 |
Set-AppLockerPolicy |
写入策略到本地注册表 / 域 GPO |
Test-AppLockerPolicy |
模拟测试文件是否被拦截 |
2. 常用完整实操脚本示例
示例 1:自动扫描系统目录生成白名单(标准化装机)
# 1. 采集系统、程序目录所有exe文件信息
$fileList = Get-ChildItem "C:\Windows","C:\Program Files" -Recurse -Include *.exe | Get-AppLockerFileInformation
# 2. 基于采集信息生成允许规则策略
$newPolicy = New-AppLockerPolicy -FileInformation $fileList -RuleType Exe -Allow
# 3. 将策略写入本地计算机
Set-AppLockerPolicy -Local -Policy $newPolicy
# 4. 重启AppID服务加载二进制缓存
net stop AppIDSvc && net start AppIDSvc
示例 2:新增单条发布者放行规则(微软 Office)
# 创建Office发布者允许规则
$officeRule = New-AppLockerPolicy -Publisher "*Microsoft Corporation*,Microsoft Office*" -RuleType Exe -Allow
# 读取当前本地策略
$currentPolicy = Get-AppLockerPolicy -Local
# 合并新规则到现有策略
$currentPolicy.ExeRules += $officeRule.ExeRules
# 写入更新后的策略
Set-AppLockerPolicy -Local -Policy $currentPolicy
示例 3:导出 / 导入策略备份(跨设备复用)
# 导出本地全部规则为XML备份
Get-AppLockerPolicy -Local -XML > C:\backup\AppLockerRules.xml
# 从XML文件恢复策略
$restorePolicy = Get-AppLockerPolicy -XMLPath "C:\backup\AppLockerRules.xml"
Set-AppLockerPolicy -Local -Policy $restorePolicy
示例 4:切换全局强制模式(0 = 仅审计,1 = 强制拦截)
$policy = Get-AppLockerPolicy -Local
$policy.EnforcementMode = 0 # 灰度审计模式
Set-AppLockerPolicy -Local -Policy $policy
示例 5:测试程序是否会被策略拦截
# 校验记事本程序匹配规则结果
Test-AppLockerPolicy -Path "C:\Windows\notepad.exe" -Local
3. 域环境批量配置拓展
- 读取域 GPO 策略
Get-AppLockerPolicy -Domain -GPOName "终端统一白名单GPO"
- 结合 GPO 模块自动下发策略到 OU:搭配
New-GPO、New-GPLink实现无人值守批量终端部署。
4. 生效配套命令
# 强制刷新组策略,同步PowerShell写入的注册表规则
gpupdate /force
# 查看AppLocker审计拦截日志
wevtutil qe Microsoft-Windows-AppLocker/EXEandDLL
一、原始 XML 持久存储层完整存储路径
1. 核心注册表根路径
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2
2. 四大规则独立子项(分别存储对应类型 XML)
| 子项名称 | 存储内容 |
|---|---|
Exe |
可执行程序(exe/com)规则 XML |
Msi |
MSI 安装包、补丁安装程序规则 XML |
Script |
bat/cmd/ps1/vbs/js 脚本规则 XML |
PackagedApps |
UWP/MSIX 封装商店应用规则 XML |
3. 内部存储结构
Value,值内容为完整标准 XML 文本:- 包含全部规则:匹配条件(发布者 / 哈希 / 路径)、允许 / 拒绝动作、规则 ID、注释、版本;
- 配套子键
EnforcementMode:存储该类规则强制模式(0=仅审计,1=强制拦截)。
4. 域环境额外备份存储
%windir%\System32\GroupPolicy\DataStore\0\SysVol\DomainPolicies
\\域控\SYSVOL\域名\Policies\{GPO-GUID}\Machine\Microsoft\Windows NT\SecEdit\AppLocker.xml5. 权限保护
SrpV2项受系统 ACL 锁定,仅SYSTEM、管理员账户可读写;普通用户无读取修改权限,防止恶意篡改规则绕过管控。二、手动更新二进制高速缓存层缓存文件
核心原理
.applocker缓存文件由AppIDPolicyConverter.exe读取注册表 XML 自动编译生成,不支持直接手动编辑二进制文件,只能通过触发自动转换流程刷新缓存,分 4 种手动触发方式(优先级从简单到完整)。方式 1:刷新组策略(最简一键触发)
gpupdate /force
- 拉取本地 / 域最新 GPO,更新
SrpV2注册表 XML; - 系统自动检测注册表变更,后台启动
AppIDPolicyConverter.exe重新生成C:\Windows\System32\AppLocker\*.applocker缓存; - 无需重启服务,缓存即时更新。
方式 2:重启 AppIDSvc 应用程序标识服务(完整重载缓存)
net stop AppIDSvc
net start AppIDSvc
方式 3:手动修改注册表 XML,等待自动转换
regedit打开HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2,修改任意规则ValueXML 内容;- 关闭注册表编辑器,系统 1~3 秒内自动检测键值变更,静默运行
AppIDPolicyConverter.exe覆盖缓存文件; - 验证:打开
C:\Windows\System32\AppLocker\,查看缓存文件修改时间戳更新。
方式 4:PowerShell 重写策略,强制重新编译缓存
# 加载自定义XML策略
$newPolicy = Get-AppLockerPolicy -XMLPath "D:\applocker_rules.xml"
# 写入注册表,自动触发缓存编译
Set-AppLockerPolicy -Local -Policy $newPolicy
# 可选重启服务立即生效
net stop AppIDSvc && net start AppIDSvc
禁止操作与故障修复
- ❌ 禁止手动编辑、直接修改
*.applocker二进制缓存:无文本可读结构,修改后规则全部失效; - 缓存损坏修复:直接删除
C:\Windows\System32\AppLocker\下全部.applocker文件,重启AppIDSvc服务,程序自动重新编译生成全新缓存。
三、同类应用程序控制软件汇总(Windows 原生 + 第三方)
一、Windows 系统原生配套(微软官方内置,无额外授权费用)
1. WDAC(Windows Defender Application Control,原 Device Guard)
- 定位:服务器、高安全终端内核级应用白名单,AppLocker 增强版;
- 底层:基于 FLT 过滤驱动,可管控内核驱动、驱动程序、用户态程序;
- 差异:AppLocker 仅管控用户层 EXE / 脚本,WDAC 拦截驱动加载,适合服务器、工控等高危加固场景;
- 适用系统:Win10 企业版、Win11 企业版、全部 Server 系统。
2. SRP 软件限制策略(Software Restriction Policies)
- 定位:旧版兼容轻量化程序管控,WinXP 时代原生组件;
- 短板:无发布者签名规则、不支持 UWP、无独立规则强制模式,仅哈希 / 路径匹配;
- 现状:仅老旧终端兼容兜底,新环境优先 AppLocker。
3. Intune 应用控制策略(MDM 云端配套)
- 定位:无域设备、云终端移动端 App 管控,云端下发白名单规则,底层复用 AppLocker/WDAC 引擎。
二、企业第三方终端安全类产品(商业化 EDR 平台,集成应用控制)
1. 微软 Defender for Endpoint(MDE)
2. 奇安信天擎、深信服 EDR、启明星辰天珣(国产政企 EDR)
- 核心能力:进程白名单 / 黑名单、脚本拦截、恶意程序阻断;
- 优势:可视化运维、批量内网终端管控、联动防火墙 / 准入控制,适配国内等保合规。
3. 国外商用 EDR:CrowdStrike Falcon、SentinelOne、Carbon Black
三、轻量化独立白名单工具(小众单机 / 工控专用)
- Simple Software Restriction Policy:开源轻量 SRP 图形管理工具;
- CryptoPrevent:专注脚本、宏、未知程序拦截,防勒索病毒;
- 工控专用:西门子工控白名单、施耐德终端锁定工具,仅允许产线指定程序运行。
四、跨平台同类工具(Linux/macOS 对标产品)
- Linux:AppArmor、SELinux(内核强制访问控制,对标 WDAC);
- macOS:TCC 安全框架、Gatekeeper 程序签名校验、MDM 应用白名单。
选型对比速记
- 普通企业桌面终端、轻量化运维、需要图形简易配置 → AppLocker
- 服务器、工控、需要拦截驱动、最高安全等级加固 → WDAC
- 全网威胁检测、勒索病毒防护、一体化终端运维 → EDR 安全平台
- 老旧 XP/7 兼容设备、极简管控 → SRP 软件限制策略
一、AppLocker 规则存储转换层的作用
- 格式转译适配
GUI、PowerShell、GPO 仅能读写可读 XML 文本(注册表
SrpV2),内核驱动AppId.sys无法解析 XML 文本;转换程序AppIDPolicyConverter.exe自动将 XML 规则编译为结构化二进制.applocker缓存文件,打通用户配置层与内核拦截层的数据格式壁垒。 - 预编译加速匹配
XML 文本每次解析都需要大量字符串、签名、哈希运算,开销极高;转换阶段提前完成签名解析、哈希预计算、规则优先级排序,生成索引化二进制表。AppIDSvc 与内核驱动直接读取预编译缓存,大幅降低程序加载时的校验延迟,避免系统卡顿。
- 语法校验与容错过滤
转换时自动校验 XML 语法、规则冲突、无效哈希 / 证书、非法路径;过滤损坏、冲突规则,输出标准化可用缓存,若规则存在错误则日志记录转换失败,避免损坏的规则下发至内核导致全部管控失效。
- 分层隔离解耦
将「可读配置存储」与「高速运行缓存」分层隔离:
- XML 层:供管理员编辑、备份、跨设备迁移;
- 二进制缓存层:专供服务与内核高速读取;
编辑原始 XML 不会直接影响运行时缓存,修改后必须经过转换才会生效,防止配置误操作瞬间破坏终端应用管控。
- 统一强制模式同步
同步四类规则(EXE/MSI/Script/ 封装应用)的强制模式(仅审计 / 强制拦截)配置,写入二进制缓存供内核区分拦截行为。
- 签名证书预缓存
配套
AppIdCertStoreCheck.exe预提取规则内所有软件 Authenticode 证书,存入CertCache.dat,运行时无需重复解析证书链,加速发布者规则匹配。
二、如何配置 AppLocker 规则存储转换层
核心说明
AppIDPolicyConverter.exe自动托管,管理员仅能通过修改上层原始 XML 规则间接控制转换行为,配套辅助控制手段如下:1. 配置原始规则(转换层输入源,核心配置入口)
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2内 XML,三种标准配置方式:方式 1:图形界面 secpol.msc(单机)
- 运行
secpol.msc→ 应用程序控制策略 → AppLocker; - 创建 / 修改四类规则、切换强制模式;
- 保存后自动写入注册表 XML,系统自动触发转换程序编译二进制缓存。
方式 2:GPMC 组策略编辑器(域批量终端)
gpmc.msc编辑 GPO 内 AppLocker 规则,客户端同步 GPO 更新本地注册表 XML,后台自动执行转换。方式 3:PowerShell 脚本批量配置
# 写入全新策略,自动触发转换
$policy = Get-AppLockerPolicy -XMLPath "D:\rule_backup.xml"
Set-AppLockerPolicy -Local -Policy $policy
2. 控制转换触发时机(手动强制刷新转换)
- 组策略刷新(最简)
gpupdate /force
- 重启 AppIDSvc 服务(完整重载转换)
net stop AppIDSvc && net start AppIDSvc
- 删除损坏缓存,强制重建转换产物
# 管理员CMD删除全部二进制缓存
del /f C:\Windows\System32\AppLocker\*.applocker
# 重启服务自动重新转换生成缓存
net stop AppIDSvc && net start AppIDSvc
3. 辅助配套控制(转换层依赖项配置)
- 开启 AppIDSvc 自动启动(转换层运行前置依赖)
sc config AppIDSvc start=auto
sc start AppIDSvc
- 系统证书存储维护(发布者规则转换依赖)
导入企业 CA 签名证书,保证转换时可正常解析软件 Authenticode 签名,避免发布者规则转换失效。
4. 转换失败兜底配置
$policy = Get-AppLockerPolicy -Local
$policy.EnforcementMode = 0 # 0=仅审计,不拦截程序
Set-AppLockerPolicy -Local -Policy $policy
三、如何查看 AppLocker 规则存储转换层相关信息
(一)查看原始 XML 持久存储层(转换输入源)
1. 注册表图形查看
regedit.exe,定位路径:
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2
Exe/Msi/Script/PackagedApps子项,双击Value字符串查看完整 XML 规则文本;EnforcementMode键查看强制模式。2. PowerShell 导出完整 XML 规则(可读备份查看)
# 导出本地全部规则为XML文件,可记事本打开查看原始转换输入
Get-AppLockerPolicy -Local -XML > C:\AppLocker_RawXML.xml
# 直接控制台打印规则文本
Get-AppLockerPolicy -Local | Format-List
(二)查看二进制高速缓存转换产物(转换输出)
1. 文件目录查看缓存文件
C:\Windows\System32\AppLocker\
ExeRules.applocker、MsiRules.applocker、ScriptRules.applocker、PackagedAppsRules.applocker,同时包含证书预缓存CertCache.dat;可查看文件修改时间,判断转换程序是否成功执行更新缓存。注:二进制文件无法直接打开阅读,仅可校验文件存在、修改时间。
2. 校验缓存是否有效
(三)查看转换程序运行日志(排错核心,转换成功 / 失败记录)
AppIDPolicyConverter.exe运行日志记录在系统应用程序事件日志:方式 1:事件查看器图形查看
eventvwr.msc→ Windows 日志 → 应用程序;- 筛选事件来源:
AppIDPolicyConverter; - 日志内容:XML 读取、规则校验、缓存生成成功 / 语法错误、冲突规则等转换详情。
方式 2:CMD 一键导出转换日志
wevtutil qe Application /q:"*[System[Provider[@Name='AppIDPolicyConverter']]]" /f:text > C:\AppLocker_ConvertLog.txt
(四)校验转换层整体工作状态
# 1. 确认核心依赖服务运行
sc query AppIDSvc
# 2. 刷新策略触发转换,观察日志输出
gpupdate /force
# 3. 测试规则匹配,验证转换缓存生效
Test-AppLockerPolicy -Path C:\Windows\notepad.exe -Local
一、如何将 AppLocker 规则从 XML 格式转换为二进制格式
基础说明
AppIDPolicyConverter.exe负责自动完成 XML→二进制.applocker缓存转换,XML 必须先写入注册表 SrpV2 节点作为输入源,分 4 套标准流程:流程 1:图形界面编辑规则自动触发转换(最常用)
- 运行
secpol.msc,编辑 / 新建 AppLocker 规则; - 保存规则,系统自动将完整 XML 写入注册表
HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2; - 系统检测注册表键值变更,后台静默启动
AppIDPolicyConverter.exe; - 程序读取 XML、校验语法、预计算哈希 / 证书、编译结构化二进制缓存;
- 输出缓存至
C:\Windows\System32\AppLocker\,生成ExeRules.applocker等 4 类二进制文件。
流程 2:PowerShell 导入 XML 策略触发转换(批量自动化)
- 准备 XML 规则文件(可通过
Get-AppLockerPolicy -XML导出备份); - 管理员 PowerShell 执行,写入注册表并自动启动转换程序:
# 加载本地XML规则
$xmlPolicy = Get-AppLockerPolicy -XMLPath "D:\applocker_rules.xml"
# 将XML写入系统注册表SrpV2,自动触发XML转二进制编译
Set-AppLockerPolicy -Local -Policy $xmlPolicy
- 等待 3 秒,访问
C:\Windows\System32\AppLocker\即可看到更新后的二进制缓存。
流程 3:手动修改注册表 XML 后自动转换(底层运维)
regedit打开HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2;- 修改对应子项
Value字符串内的 XML 规则内容,关闭注册表; - 系统自动检测注册表变更,执行转换程序生成二进制缓存。
流程 4:强制刷新,手动触发完整转换(缓存失效 / 未自动更新场景)
# 1. 刷新组策略,同步注册表XML并触发转换
gpupdate /force
# 2. 重启AppIDSvc服务,服务启动时会强制重新执行转换
net stop AppIDSvc && net start AppIDSvc
补充:手动重建损坏二进制缓存
- 删除全部旧二进制缓存文件:
del /f C:\Windows\System32\AppLocker\*.applocker
- 重启 AppIDSvc,转换程序自动读取注册表 XML,全新生成二进制缓存。
限制提醒
- 无法直接对本地独立 XML 文件离线转换,XML 必须存入注册表作为系统识别的规则源;
- 二进制
.applocker无公开解析标准,不能反向手动编辑。
二、除 AppLocker 以外同类应用程序控制技术
一、微软 Windows 原生内置技术(免费,系统自带)
1. WDAC(Windows Defender Application Control,原 Device Guard)
- 定位:服务器、工控、高安全终端内核级白名单,AppLocker 增强升级版;
- 核心差异:AppLocker 仅管控用户层 EXE / 脚本 / MSI/UWP;WDAC 可拦截内核驱动、驱动程序、固件,底层基于文件过滤驱动;
- 适用:域服务器、工控机、零信任高安全终端。
2. SRP 软件限制策略(Software Restriction Policies)
3. Intune MDM 应用控制
4. Windows Defender for Endpoint 应用防护
二、国产商业化 EDR 终端安全产品(政企等保场景)
- 奇安信天擎、深信服 EDR、启明星辰天珣
内核级进程拦截,可视化批量进程白名单、脚本拦截、勒索程序阻断,联动内网准入、防火墙;
- 亚信安全、安恒终端安全:适配国内政务、医院、国企内网合规管控。
三、海外商用 EDR 平台
四、跨平台开源内核强制访问控制
- Linux:SELinux、AppArmor(对标 WDAC,进程 / 文件系统强制权限管控);
- macOS:Gatekeeper、TCC MDM 应用白名单;
五、工控专用独立锁定工具
三、AppLocker 规则存储转换层性能监控与优化
(一)性能监控手段
1. 转换程序运行日志监控(核心排错 / 耗时观测)
AppIDPolicyConverter.exe日志存于应用程序事件日志,来源AppIDPolicyConverter:# 导出转换完整日志,查看转换耗时、报错、规则数量
wevtutil qe Application /q:"*[System[Provider[@Name='AppIDPolicyConverter']]]" /f:text > C:\AppConvertLog.txt
2. 进程资源占用监控
实时观测转换时 CPU / 磁盘占用
- 任务管理器→详细信息,观测
AppIDPolicyConverter.exe、AppIDSvc.dll瞬时 CPU 峰值; - PowerShell 实时追踪进程资源:
Get-WmiObject Win32_PerfFormattedData_PerfProc_Process | Where Name -Match "AppIDPolicyConverter" | Select Name,PercentUserTime,PercentPrivilegedTime
磁盘 IO 监控
AppIDPolicyConverter.exe,观测注册表读取、AppLocker目录缓存写入磁盘 IO。3. 运行时校验延迟监控(转换缓存生效后的终端性能)
Test-AppLockerPolicy搭配性能计时器,观测程序规则匹配耗时:Measure-Command { Test-AppLockerPolicy -Path "C:\Windows\notepad.exe" -Local }
4. 系统内置性能计数器监控
Process(AppIDPolicyConverter)\% User Time、Process(AppIDSvc)\IO Write Bytes/sec,长期采集转换层资源负载基线。(二)转换层性能优化方案
1. 规则结构优化(最核心优化手段,大幅降低转换耗时)
- 优先使用发布者签名规则,减少海量哈希规则;哈希规则每条都会独立计算校验,转换、运行开销极大;
- 合并重复后缀路径规则,删除冗余冲突规则,减少 XML 总条目;
- 拆分 4 类规则:EXE/MSI/Script/PackagedApps 按需配置,无需全量启用;
- 避免宽泛路径规则(如
C:\*),缩小匹配目录范围,减少预扫描条目。
2. 证书预缓存优化(发布者规则转换加速)
- 将企业内部软件签名 CA 导入系统本地根证书存储,避免转换时在线下载证书链;
- 定期执行
AppIdCertStoreCheck.exe预刷新证书缓存,转换阶段无需实时解析证书。
3. 缓存文件与系统磁盘优化
- 系统盘使用 SSD 固态硬盘,
C:\Windows\System32\AppLocker缓存目录读写 IO 大幅降低转换耗时; - 定期清理无效旧缓存:删除
*.applocker重启服务重建干净缓存,消除碎片冗余数据。
4. 转换触发时机管控,避免业务高峰期执行
- 域 GPO 组策略刷新间隔调整至夜间 / 业务低峰时段,避免白天批量终端同时执行 XML 转二进制;
- 禁止业务工作时段执行
gpupdate /force、重启 AppIDSvc 服务;批量策略更新放在凌晨维护窗口。
5. 系统服务与底层依赖优化
AppIDSvc设置为自动延迟启动,系统开机完成基础加载后再执行规则转换,避免开机并发 IO 卡顿;- 维护系统 Wintrust 加密库、根证书,修复证书链损坏导致的转换循环重试、CPU 高占用;
- 清理注册表
SrpV2冗余旧规则残留键值,精简 XML 文本体积。
6. 灰度分层优化(大型企业多规则场景)
- 先使用「仅审计」强制模式上线规则,排查无效 / 冲突规则,清理后再切换强制拦截;
- 超大规则集拆分多套 GPO,分批次下发终端,避免单次转换 XML 体积过大、CPU 长时间高负载。
(三)性能故障判定标准
- 单次转换耗时>5 秒:规则冗余 / 哈希条目过多,需要精简;
- 转换时 CPU 持续占用>30% 超过 10 秒:证书链异常、存在大量无效哈希规则;
- 程序启动校验耗时>100ms:二进制缓存索引碎片,删除缓存重建即可恢复。

在 Windows 组策略中,公钥策略用于管理与公钥基础设施(PKI)相关的设置,包括加密文件系统(EFS)、数据保护和 BitLocker 驱动器加密。以下是这三个功能的详细描述和配置方法。
1. 加密文件系统(EFS)
描述
加密文件系统(EFS)是 Windows 提供的一种文件加密功能,允许用户加密文件和文件夹,以保护敏感数据。EFS 使用用户的公钥和私钥来加密和解密文件,确保只有授权用户可以访问这些文件。
配置步骤
-
打开组策略管理控制台:
- 在运行对话框中输入
gpmc.msc,打开组策略管理控制台。
- 在运行对话框中输入
-
创建或编辑组策略对象(GPO):
- 找到您要应用 EFS 策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
-
导航到 EFS 设置:
- 导航到计算机配置 > Windows 设置 > 安全设置 > 公钥策略 > 加密文件系统。
-
配置 EFS 策略:
- 在 EFS 设置中,您可以配置以下选项:
- 强制使用 EFS:强制用户在特定文件夹中使用 EFS。
- 配置 EFS 证书:管理 EFS 证书的分配和使用。
- 在 EFS 设置中,您可以配置以下选项:
-
应用和测试策略:
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试 EFS 功能,确保文件加密和解密按预期工作。
2. 数据保护
描述
数据保护策略主要用于管理和配置与用户数据保护相关的设置,包括用户证书和密钥的管理。它确保用户的数据在存储和传输过程中得到保护。
配置步骤
-
打开组策略管理控制台:
- 在运行对话框中输入
gpmc.msc,打开组策略管理控制台。
- 在运行对话框中输入
-
创建或编辑组策略对象(GPO):
- 找到您要应用数据保护策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
-
导航到数据保护设置:
- 导航到计算机配置 > Windows 设置 > 安全设置 > 公钥策略 > 数据保护。
-
配置数据保护策略:
- 在数据保护设置中,您可以配置以下选项:
- 配置用户证书:管理用户证书的分配和使用。
- 配置密钥管理:设置密钥的管理和存储策略。
- 在数据保护设置中,您可以配置以下选项:
-
应用和测试策略:
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试数据保护功能,确保用户数据得到有效保护。
3. BitLocker 驱动器加密
描述
BitLocker 是 Windows 提供的全盘加密功能,旨在保护数据免受未授权访问。它通过加密整个驱动器来确保数据的安全性,尤其是在设备丢失或被盗的情况下。
配置步骤
-
打开组策略管理控制台:
- 在运行对话框中输入
gpmc.msc,打开组策略管理控制台。
- 在运行对话框中输入
-
创建或编辑组策略对象(GPO):
- 找到您要应用 BitLocker 策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
-
导航到 BitLocker 设置:
- 导航到计算机配置 > 管理模板 > Windows 组件 > BitLocker 驱动器加密。
-
配置 BitLocker 策略:
- 在 BitLocker 设置中,您可以配置以下选项:
- 启用 BitLocker 驱动器加密:启用 BitLocker 功能。
- 选择加密方法和强度:选择加密算法和密钥长度。
- 配置恢复选项:设置 BitLocker 恢复密钥的管理和存储方式。
- 强制使用 TPM:如果计算机具有受信任的平台模块(TPM),可以强制使用 TPM 进行加密。
- 在 BitLocker 设置中,您可以配置以下选项:
-
应用和测试策略:
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试 BitLocker 功能,确保驱动器加密和解密按预期工作。
注意事项
- 备份恢复密钥:在启用 BitLocker 时,务必备份恢复密钥,以防止在需要解密时无法访问数据。
- 用户权限:确保用户具有适当的权限来加密和解密文件,以及启用和管理 BitLocker。
- 测试环境:在生产环境中实施这些策略之前,建议在测试环境中进行充分测试,以避免意外阻止合法用户的访问。
Windows 组策略中的软件限制策略(Software Restriction Policies, SRP)是一种安全功能,允许管理员控制在计算机上可以运行哪些软件。通过配置软件限制策略,您可以提高系统的安全性,防止恶意软件和未授权应用程序的执行。以下是软件限制策略的安全级别和其他规则的详细描述及其配置方法。


软件限制策略安全级别
-
未定义(Not Defined)
- 描述:此状态表示未应用任何软件限制策略,系统将允许所有软件的执行。
-
不受限制(Unrestricted)
- 描述:所有软件都可以运行,包括未签名的和来自不受信任来源的应用程序。此设置通常不推荐使用,因为它会降低系统的安全性。
-
受限制(Disallowed)
- 描述:所有软件都被禁止运行,除非明确允许。此设置可以有效防止未授权软件的执行,但可能会影响合法应用程序的使用。
-
安全级别(Security Levels)
- 描述:可以为特定的文件和路径设置不同的安全级别,以允许或拒绝执行。可以根据需要为不同的应用程序和用户组配置不同的安全级别。
其他规则

-
路径规则(Path Rules)
- 描述:根据文件的路径来允许或拒绝执行特定的程序。例如,可以设置只允许从特定文件夹(如
C:\Program Files)中的程序运行。 - 配置:
- 打开“组策略管理控制台”。
- 导航到计算机配置 > Windows 设置 > 安全设置 > 软件限制策略。
- 右键单击“软件限制策略”,选择“新建路径规则”。
- 输入要限制的路径,选择安全级别(允许或拒绝),然后点击“确定”。
- 描述:根据文件的路径来允许或拒绝执行特定的程序。例如,可以设置只允许从特定文件夹(如
-
哈希规则(Hash Rules)
- 描述:基于文件的哈希值来允许或拒绝执行特定程序。此方法可以确保即使文件被移动到其他位置,仍然可以控制其执行。
- 配置:
- 在软件限制策略中,右键单击“哈希规则”,选择“新建哈希规则”。
- 选择要限制的可执行文件,系统将自动生成哈希值。
- 设置安全级别(允许或拒绝),然后点击“确定”。
-
发布者规则(Publisher Rules)
- 描述:根据文件的数字签名(发布者)来允许或拒绝执行程序。此规则适用于已签名的应用程序,可以提高安全性。
- 配置:
- 在软件限制策略中,右键单击“发布者规则”,选择“新建发布者规则”。
- 选择要限制的已签名文件,系统将提取发布者信息。
- 设置安全级别(允许或拒绝),然后点击“确定”。
-
证书规则(Certificate Rules)
- 描述:基于数字证书来允许或拒绝执行程序。适用于需要验证软件来源的场景。
- 配置:
- 在软件限制策略中,右键单击“证书规则”,选择“新建证书规则”。
- 选择要限制的证书,设置安全级别(允许或拒绝),然后点击“确定”。
配置步骤
-
打开组策略管理控制台
- 在运行对话框中输入
gpmc.msc,打开组策略管理控制台。
- 在运行对话框中输入
-
创建或编辑组策略对象(GPO)
- 找到您要应用软件限制策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
-
配置软件限制策略
- 导航到计算机配置 > Windows 设置 > 安全设置 > 软件限制策略。
- 右键单击“软件限制策略”,选择“创建新的软件限制策略”。
- 根据需要配置安全级别和其他规则。
-
应用和测试策略
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试软件的执行情况,确保规则按预期工作。
注意事项
- 默认规则:软件限制策略默认提供了一些规则,您可以选择保留或修改这些规则。
- 日志记录:启用软件限制策略的日志记录功能,以便监控应用程序的执行情况和规则的匹配情况。
- 测试环境:在生产环境中实施软件限制策略之前,建议在测试环境中进行充分测试,以避免意外阻止合法应用程序的执行。
通过以上步骤,您可以有效地配置和管理 Windows 的软件限制策略,以增强系统的安全性。
Windows 的组策略功能提供了多种安全管理工具,其中 AppLocker 是一种用于控制应用程序执行的功能。AppLocker 允许管理员定义哪些应用程序可以在计算机上运行,从而增强系统的安全性。以下是对 AppLocker 中不同规则类型的详细描述以及配置方法。
AppLocker 规则类型
-
可执行规则(Executable Rules)

- 描述:可执行规则用于控制可执行文件(如
.exe和.com文件)的运行。这些规则可以基于文件的路径、发布者(数字签名)或文件哈希值来进行配置。 - 配置:
- 打开“组策略管理控制台”。
- 导航到计算机配置 > Windows 设置 > 安全设置 > 应用程序控制策略 > AppLocker。
- 右键单击“可执行规则”,选择“创建规则”。
- 按照向导的指示选择规则类型(路径、发布者或哈希),并指定相应的条件。
- 描述:可执行规则用于控制可执行文件(如
-
脚本规则(Script Rules)
- 描述:脚本规则用于控制脚本文件的执行(如
.ps1、.bat和.cmd文件)。与可执行规则类似,脚本规则也可以基于路径、发布者或哈希值进行配置。 - 配置:
- 在 AppLocker 中,右键单击“脚本规则”,选择“创建规则”。
- 选择规则类型(路径、发布者或哈希),并指定相应的条件。
- 描述:脚本规则用于控制脚本文件的执行(如
-
封装应用规则(Packaged App Rules)
- 描述:封装应用规则用于控制 Windows 应用商店应用(UWP 应用)的执行。这些规则基于应用的包标识符进行配置。
- 配置:
- 在 AppLocker 中,右键单击“封装应用规则”,选择“创建规则”。
- 按照向导的指示选择应用包的标识符,并指定相应的条件。
-
Windows 安装程序规则(Windows Installer Rules)
- 描述:Windows 安装程序规则用于控制通过 Windows Installer(
.msi文件)安装的应用程序。这些规则可以基于发布者或文件哈希值进行配置。 - 配置:
- 在 AppLocker 中,右键单击“Windows 安装程序规则”,选择“创建规则”。
- 选择规则类型(发布者或哈希),并指定相应的条件。
- 描述:Windows 安装程序规则用于控制通过 Windows Installer(
配置步骤
-
打开组策略管理控制台
- 在运行对话框中输入
gpmc.msc,打开组策略管理控制台。
- 在运行对话框中输入
-
创建或编辑组策略对象(GPO)
- 找到您要应用 AppLocker 策略的组织单位(OU),右键单击并选择“创建一个 GPO 并在此链接它”。
- 为新 GPO 命名,然后右键单击它并选择“编辑”。
-
配置 AppLocker 策略
- 导航到计算机配置 > Windows 设置 > 安全设置 > 应用程序控制策略 > AppLocker。
- 右键单击每种规则类型(可执行规则、脚本规则、封装应用规则、Windows 安装程序规则),选择“创建规则”。
- 按照向导的步骤进行配置,设置规则的条件和权限(允许或拒绝)。
-
应用和测试策略
- 完成配置后,关闭组策略编辑器。
- 在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试应用程序的执行情况,确保规则按预期工作。
注意事项
- 默认规则:AppLocker 默认提供了一些规则,您可以选择保留或修改这些规则。
- 日志记录:启用 AppLocker 的日志记录功能,以便监控应用程序的执行情况和规则的匹配情况。
- 测试环境:在生产环境中实施 AppLocker 策略之前,建议在测试环境中进行充分测试,以避免意外阻止合法应用程序的执行。
通过以上步骤,您可以有效地配置和管理 Windows 的 AppLocker 策略,以增强系统的安全性。
IP 安全策略(IP Security Policies)是 Windows 操作系统中的一项功能,允许管理员通过定义和实施安全策略来保护网络通信。它通过加密和身份验证来确保数据在网络上传输时的安全性。以下是关于 IP 安全策略的详细描述和配置步骤。
IP 安全策略的描述
-
功能:
- 数据保护:通过加密数据包,确保数据在传输过程中不被窃取或篡改。
- 身份验证:确保通信双方的身份,防止未授权的访问。
- 灵活性:可以根据需要定义不同的策略,以适应不同的网络环境和安全需求。
-
工作原理:
- IP 安全策略通过在 IP 层上实施安全措施,使用协议如 AH(Authentication Header)和 ESP(Encapsulating Security Payload)来提供身份验证和加密。
- 策略可以应用于特定的 IP 地址、端口或协议,以实现精细化的控制。
配置 IP 安全策略的步骤
以下是配置 IP 安全策略的详细步骤:
1. 打开本地安全策略管理器
- 按
Win + R键,输入secpol.msc,然后按 Enter 键,打开本地安全策略管理器。
2. 导航到 IP 安全策略
- 在左侧窗格中,展开“网络策略和访问服务”。
- 选择“IP 安全策略”。
3. 创建新的 IP 安全策略
- 右键单击“IP 安全策略”,选择“创建 IP 安全策略”。
- 向导设置:
- 策略名称:为新策略命名,例如“Secure IP Policy”。
- 描述:可以选择添加描述,帮助识别策略的用途。
- 选择“默认响应规则”:可以选择“使用默认响应规则”或“不使用默认响应规则”。
- 选择“完成”,以创建策略。
4. 配置 IP 安全规则
- 右键单击新创建的策略,选择“属性”。
- 添加规则:
- 在“规则”选项卡中,点击“添加”。
- 选择规则类型:可以选择“请求安全”或“响应安全”。
- 选择 IP 地址:可以指定源和目标 IP 地址,或选择“所有 IP 地址”。
- 选择协议:可以选择特定的协议(如 TCP、UDP)或所有协议。
- 选择安全方法:选择身份验证和加密方法(如 Kerberos、证书等)。
- 完成规则设置。
5. 应用和测试策略
- 启用策略:确保新创建的策略已启用。
- 测试:在目标计算机上,使用
gpupdate /force命令强制更新组策略。 - 验证:使用网络监控工具(如 Wireshark)检查 IP 数据包,确保加密和身份验证按预期工作。
注意事项
- 策略优先级:多个 IP 安全策略可以同时存在,策略的优先级会影响其应用。确保策略的顺序符合安全需求。
- 兼容性:确保所有参与通信的设备都支持 IP 安全策略。
- 监控和日志:定期检查 IP 安全策略的日志,以确保没有未授权的访问和潜在的安全问题。
在 Windows 组策略中,IP 安全策略用于保护计算机之间的网络通信,确保数据的安全性和完整性。以下是关于新 IP 安全策略的详细描述,包括属性、规则、身份验证方法、筛选器操作等的配置步骤。







1. 新 IP 安全策略属性
(1) 常规
- 名称:为新策略命名,以便于识别。
- 描述:可以添加描述以说明策略的用途。
2. IP 安全规则
(1) IP 筛选器列表
- 描述:IP 筛选器用于定义哪些 IP 地址可以进行通信。可以根据需要创建多个筛选器,以便精细控制网络流量。
- 配置:
- 在 IP 安全策略的属性中,选择“IP 筛选器列表”。
- 点击“添加”以创建新的筛选器,或选择现有筛选器进行编辑。
- 在添加或编辑筛选器时,指定源和目标 IP 地址、协议类型(如 TCP、UDP)等。
3. 身份验证方法
- 描述:身份验证方法用于确保通信双方的身份。常见的身份验证方法包括 Kerberos、证书和预共享密钥等。
- 配置:
- 在 IP 安全策略中,选择“身份验证方法”。
- 选择适合的身份验证方法(如 Kerberos)。
- 如果选择 Kerberos,确保计算机已加入域并且 Kerberos 服务正常运行。
4. 隧道终结点
- 描述:隧道终结点用于定义 VPN 或其他隧道协议的终结点。可以设置隧道的源和目标 IP 地址。
- 配置:
- 在 IP 安全策略中,选择“隧道终结点”。
- 指定隧道的源和目标 IP 地址。
5. 筛选器操作
- 描述:筛选器操作定义了在匹配筛选器时应采取的操作。可以选择“允许”或“拒绝”流量。
- 配置:
- 在 IP 安全策略中,选择“筛选器操作”。
- 设置默认响应(如“允许”或“拒绝”)。
- 可以选择“动态”以允许基于当前网络状态的动态响应。
6. 连接类型
- 描述:连接类型用于定义策略适用的网络连接类型,例如本地连接、远程连接等。
- 配置:
- 在 IP 安全策略中,选择“连接类型”。
- 根据需要选择适用的连接类型。
7. 添加、删除和编辑
- 添加:使用“添加向导”创建新的 IP 安全规则或筛选器。
- 删除:选择现有的规则或筛选器,点击“删除”以移除不再需要的项。
- 编辑:选择现有的规则或筛选器,点击“编辑”以修改其属性。
应用和测试策略
- 启用策略:确保新创建的 IP 安全策略已启用。
- 更新组策略:在目标计算机上,运行
gpupdate /force命令以强制更新组策略。 - 测试:使用网络监控工具(如 Wireshark)检查 IP 数据包,确保安全策略按预期工作。
注意事项
- 策略优先级:多个 IP 安全策略可以同时存在,策略的优先级会影响其应用。
- 兼容性:确保所有参与通信的设备都支持 IP 安全策略。
- 监控和日志:定期检查 IP 安全策略的日志,以确保没有未授权的访问和潜在的安全问题。
Windows Server 中通过组策略管理来禁止员工安装软件的设置。这种做法可以有效地限制员工自行安装未经授权的软件,从而保护企业网络安全和管理规范。下面我将对每个步骤进行简要解释。
步骤1: 打开域控制器的“组策略管理”界面
在域控制器上打开“服务器管理器”,选择“工具”菜单下的“组策略管理”。
步骤2: 在树形目录结构中找到“Default Domain Policy”节点右键单击该节点,在弹出的菜单中选择“编辑"
这一步是为了编辑默认域策略,它将应用到整个域中的计算机。
步骤3: 在“组策略管理编辑器”界面中,选择“计算机配置”->“策略”->"安全设置”->“软件限制策略”
在这里,你将找到软件限制策略的位置,它允许你对软件的安装和执行进行控制。
步骤4: 在“软件限制策略”中选择“新建安全策略”
这一步是为了创建一个新的安全策略,用于定义禁止安装软件的规则。
步骤5: 将新建的安全策略命名为“禁止安装软件”的策略名称
给新建的安全策略取一个清晰明确的名称,以便在管理和维护时能够清晰地识别出来。
步骤6: 在“禁止安装软件”策略中设置“不允许使用未经授权软件”,然后单击“确定”按钮保存该设置。
在这一步,你需要配置策略的规则,确保不允许使用未经授权的软件。完成设置后,记得保存并应用该策略。
使用 PowerShell 来配置禁止员工安装软件的设置时,可以采取以下步骤:
步骤1: 打开 PowerShell 窗口
在开始菜单中找到 PowerShell,右键单击并选择“以管理员身份运行”,打开 PowerShell 窗口。
步骤2: 使用 Set-ExecutionPolicy 命令设置 PowerShell 执行策略
Set-ExecutionPolicy RemoteSigned
这将允许本地脚本的执行,但需要远程脚本进行数字签名。
步骤3: 使用 New-SoftwareRestrictionPolicy 命令创建新的软件限制策略
New-SoftwareRestrictionPolicy -Level Disallowed
这将创建一个新的软件限制策略,并将其级别设置为“Disallowed”(禁止)。
步骤4: 使用 Get-SoftwareRestrictionPolicy 命令查看已创建的策略
Get-SoftwareRestrictionPolicy
这将显示当前计算机上的软件限制策略设置。
步骤5: 如果需要,可以使用 Set-SoftwareRestrictionPolicy 命令对已创建的策略进行进一步的配置
Set-SoftwareRestrictionPolicy -SecurityLevel Disallowed
这将确保禁止使用未经授权的软件。
通过以上几个步骤,管理员可以使用 PowerShell 工具轻松地配置好禁止员工安装软件的设置。

浙公网安备 33010602011771号