目录服务组件更新
05/31/2017
本文内容
适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012
作者: Justin Turner,具有 Windows 组的高级支持升级工程师
备注
本内容由 Microsoft 客户支持工程师编写,适用于正在查找比 TechNet 主题通常提供的内容更深入的有关 Windows Server 2012 R2 中的功能和解决方案的技术说明的有经验管理员和系统架构师。 但是,它未经过相同的编辑审批,因此某些语言可能看起来不如通常在 TechNet 上找到的内容那么精练。
本课程介绍 Windows Server 2012 R2 中的目录服务组件更新。
学习内容
说明以下新的目录服务组件更新:
域和林功能级别
概述
本部分简要介绍域和林功能级别的更改。
New DFL 和 FFL
在此版本中,有新的域和林功能级别:
林功能级别: Windows Server 2012 R2
域功能级别: Windows Server 2012 R2
Windows Server 2012 R2 域功能级别支持以下各项:
受保护用户 的 DC 端保护
向 Windows Server 2012 R2 域进行身份验证的 受保护用户 将无法 再 执行以下操作:
使用 NTLM 身份验证进行验证
在 Kerberos 预身份验证中使用 DES 或 RC4 密码套件
使用不受约束的或受约束的委派进行委派
在超出最初的 4 小时生存期后续订用户票证 (TGT)
身份验证策略
可应用于 Windows Server 2012 R2 域中的帐户的新的基于林的 Active Directory 策略,以控制帐户可以登录的主机并将身份验证的访问控制条件应用到作为帐户运行的服务
身份验证策略接收器
新的基于林的 Active Directory 对象,它可以在用户、托管服务和计算机帐户之间创建关系,以用于对身份验证策略的帐户进行分类或用于身份验证隔离。
有关详细信息,请参阅如何配置受保护的帐户。
除了上述功能之外,Windows Server 2012 r2 域功能级别还确保域中的任何域控制器都运行 Windows Server 2012 R2。
Windows Server 2012 r2 林功能级别不提供任何新功能,但可确保在林中创建的任何新域都自动在 Windows Server 2012 R2 域功能级别运行。
在创建新域时强制实施的最小 DFL
Windows服务器 2008 DFL 是创建新域时支持的最低功能级别。
备注
FRS 的弃用方法是通过删除安装新域的功能,使其域功能级别低于 Windows Server 2008 服务器管理器或通过 Windows PowerShell 安装。
降低林和域功能级别
默认情况下,林和域功能级别设置为 Windows Server 2012 R2,在新域和新林创建时设置为,但可以使用 Windows PowerShell 降低。
若要使用 Windows PowerShell 提高或降低林功能级别,请使用 set-adforestmode cmdlet。
若要将 contoso.com FFL 设置为 Windows Server 2008 模式:
Set-ADForestMode -ForestMode Windows2008Forest -Identity contoso.com
若要使用 Windows PowerShell 提高或降低域功能级别,请使用 Set-ADDomainMode cmdlet。
若要将 contoso.com DFL 设置为 Windows Server 2008 模式:
Set-ADDomainMode -DomainMode Windows2008Domain -Identity contoso.com
将运行 Windows Server 2012 R2 的 DC 作为附加副本升级到运行 2003 DFL 的现有域。
在现有林中创建新域
ADPREP.LOG
此版本中没有新的林或域操作。
这些 .ldf 文件包含 设备注册服务 的架构更改。
Sch59
Sch61
Sch62
Sch63
Sch64
Sch65
Sch67
工作文件夹:
Sch66
MSODS
Sch60
身份验证策略和接收器
Sch68
Sch69
弃用了 NTFRS
概述
FRS 在 Windows Server 2012 R2 中已弃用。 FRS 的弃用是通过在 Windows Server 2008 (DFL) 的最小域功能级别来实现的。 仅当使用服务器管理器或 Windows PowerShell 创建新域时,才会执行此强制。
将-DomainMode 参数与 Install-ADDSForest 或 Install-ADDSDomain cmdlet 一起使用,以指定域功能级别。 此参数的支持值可以是有效的整数或相应的枚举字符串值。 例如,若要将域模式级别设置为 Windows Server 2008 R2,可以指定值4或 "Win2008R2"。 从服务器 2012 R2 中执行这些 cmdlet 时,有效值包括 Windows Server 2008 (3、Win2008) Windows Server 2008 R2 (4,Win2008R2) Windows Server 2012 (5,Win2012) 和 Windows Server 2012 R2 (6,Win2012R2) 。 域功能级别不能低于林控制级别,但可以高于林控制级别。 由于此版本中已弃用 FRS,因此从 Windows Server 2012 R2 执行时,Windows Server 2003 (2,Win2003) 不是具有这些 cmdlet 的已识别参数。
LDAP 查询优化器更改
概述
LDAP 查询优化器算法已重新评估并经过进一步优化。 结果是在 LDAP 搜索效率和复杂查询的 LDAP 搜索时间方面的性能改进。
备注
从开发人员:在从 LDAP 查询到 ESE 查询的映射中,对改进的搜索性能进行了改进。 超出特定级别的复杂性的 LDAP 筛选器将阻止优化的索引选择,从而大大降低 (1000 倍或更多) 的性能。 此更改将改变为 LDAP 查询选择索引的方式,以避免此问题。
备注
完全彻底降低 LDAP 查询优化器算法,导致:
更快搜索时间
提高了效率,使 Dc 可以执行更多操作
对 AD 性能问题的更少支持调用
回退到 Windows Server 2008 R2 (KB 2862304)
背景
搜索 Active Directory 功能是由域控制器提供的核心服务。 其他服务和业务线应用程序依赖于 Active Directory 搜索。 如果此功能不可用,业务操作可能会停止停止。 作为核心和使用频繁的服务,域控制器必须有效地处理 LDAP 搜索流量。 LDAP 查询优化器算法尝试通过将 LDAP 搜索筛选器映射到可通过数据库中已建立索引的记录来满足的结果集,从而使 LDAP 搜索尽可能高效。 此算法已重新评估并经过进一步优化。 结果是在 LDAP 搜索效率和复杂查询的 LDAP 搜索时间方面的性能改进。
更改详细信息
LDAP 搜索包含:
层次结构 (NC 头、OU、对象) 开始搜索的位置
搜索筛选器
要返回的属性列表
搜索过程可以总结如下:
尽可能简化搜索筛选器。
选择一组索引键,这些键将返回覆盖最小的集。
执行索引键的一个或多个交集,以减少覆盖的集。
对于所覆盖集的每个记录,请评估筛选器表达式以及安全性。 如果筛选器计算结果为 TRUE 并授予访问权限,则向客户端返回此记录。
LDAP 查询优化工作会修改步骤 2 和 3,以减少覆盖集的大小。 更具体地说,当前实现选择重复的索引键并执行冗余交集。
旧算法和新算法之间的比较
此示例中低效 LDAP 搜索的目标是一个Windows Server 2012域控制器。 由于找不到更有效的索引,搜索大约在 44 秒后完成。
adfind -b dc=blue,dc=contoso,dc=com -f "(| (& (|(cn=justintu) (postalcode=80304) (userprincipalname=justintu@blue.contoso.com)) (|(objectclass=person) (cn=justintu)) ) (&(cn=justintu)(objectclass=person)))" -stats >>adfind.txt
Using server: WINSRV-DC1.blue.contoso.com:389
Statistics
=====
Elapsed Time: 44640 (ms)
Returned 324 entries of 553896 visited - (0.06%)
Used Filter:
( | ( & ( | (cn=justintu) (postalCode=80304) (userPrincipalName=justintu@blue.contoso.com) ) ( | (objectClass=person) (cn=justintu) ) ) ( & (cn=justintu) (objectClass=person) ) )
Used Indices:
DNT_index:516615:N
Pages Referenced : 4619650
Pages Read From Disk : 973
Pages Pre-read From Disk : 180898
Pages Dirtied : 0
Pages Re-Dirtied : 0
Log Records Generated : 0
Log Record Bytes Generated: 0
使用新算法的示例结果
此示例重复上述完全相同的搜索,但Windows Server 2012 R2 域控制器。 由于 LDAP 查询优化器算法的改进,相同的搜索在不到一秒钟内完成。
adfind -b dc=blue,dc=contoso,dc=com -f "(| (& (|(cn=justintu) (postalcode=80304) (userprincipalname=dhunt@blue.contoso.com)) (|(objectclass=person) (cn=justintu)) ) (&(cn=justintu)(objectclass=person)))" -stats >>adfindBLUE.txt
Using server: winblueDC1.blue.contoso.com:389
.
Statistics
=====
Elapsed Time: 672 (ms)
Returned 324 entries of 648 visited - (50.00%)
Used Filter:
( | ( & ( | (cn=justintu) (postalCode=80304) (userPrincipalName=justintu@blue.contoso.com) ) ( | (objectClass=person) (cn=justintu) ) ) ( & (cn=justintu) (objectClass=person) ) )
Used Indices:
idx_userPrincipalName:648:N
idx_postalCode:323:N
idx_cn:1:N
Pages Referenced : 15350
Pages Read From Disk : 176
Pages Pre-read From Disk : 2
Pages Dirtied : 0
Pages Re-Dirtied : 0
Log Records Generated : 0
Log Record Bytes Generated: 0
如果无法优化树:
例如:树中的表达式位于未编制索引的列上
记录阻止优化的索引列表
通过 ETW 跟踪和事件 ID 1644 公开
在 LDP 中启用 Stats 控件
打开LDP.exe,并连接到域控制器并绑定到域控制器。
在"选项 "菜单 上,单击"控件"。
在"控件"对话框中,展开"加载预定义"下拉菜单,单击"搜索统计信息",然后单击"确定 "。
在"浏览 "菜单 上,单击" 搜索"
在"搜索"对话框中,选择" 选项" 按钮。
确保在"搜索 选项"对话框中选中"扩展"复选框,然后选择"确定 "。
尝试此操作:使用 LDP 返回查询统计信息
在域控制器上或者从已加入域的客户端或服务器上执行以下操作,该客户端或服务器上安装了AD DS工具。 针对 DC 和 Windows Server 2012 R2 DC 重复Windows Server 2012以下操作。
使用 LDP 启用搜索统计信息 (请参阅在 LDP 查询中启用统计信息)
执行多个 LDAP 搜索,并观察结果顶部的统计信息。 你将在其他活动中重复相同的搜索,因此请将其记录在记事本文本文件中。
执行由于属性索引而查询优化器应该能够优化的 LDAP 搜索
尝试构造需要很长时间才能完成的搜索, (增加"时间限制"选项,使搜索不会超时) 。
其他资源
951581 AD 或 LDS/ADAM 目录服务中执行 LDAP 查询的速度比预期要慢,并且可能会记录事件 ID 1644
1644 事件改进
概述
此更新将其他 LDAP 搜索结果统计信息添加到事件 ID 1644,有助于进行故障排除。 此外,还有一个新的注册表值可用于启用基于时间阈值的日志记录。 这些改进通过 KB 2800945 在 Windows Server 2012 和 Windows Server 2008 R2 SP1 中提供,Windows Server 2008 SP2 可用。
备注
其他 LDAP 搜索统计信息将添加到事件 ID 1644,帮助排查低效或昂贵的 LDAP 搜索问题
现在可以指定搜索时间阈值 (,例如 记录超过 100 毫秒的搜索事件 1644) 而不是指定"高开销"和"低效"搜索结果阈值
背景
排查 Active Directory 性能问题时,LDAP 搜索活动可能会明显导致此问题。 你决定启用日志记录,以便可以看到域控制器处理的成本高昂或低效的 LDAP 查询。 若要启用日志记录,必须设置字段工程诊断值,并可以选择指定成本高昂/低效的搜索结果阈值。 将字段工程日志记录级别启用为值 5 后,满足这些条件的任何搜索都记录在目录服务事件日志中,事件 ID 为 1644。
事件包含:
客户端 IP 和端口
启动节点
筛选器
搜索范围
属性选择
服务器控件
访问的条目
返回的条目
但是,事件缺少关键数据,例如搜索操作所花费的时间,以及 (索引) 值。
添加到事件 1644 的其他搜索统计信息
已用索引
引用的页面
从磁盘读取的页面
从磁盘预读的页
已修改的清理页
已修改脏页
搜索时间
阻止优化的属性
事件 1644 日志记录的新基于时间阈值注册表值
可以指定"搜索时间阈值",而不是指定"高开销"和"低效"搜索结果阈值。 如果要记录所有需要 50 毫秒或更大的搜索结果,除了将"字段工程"值设置为) 之外,还可以指定 50 位十进制/3 (2 个十六进制) 。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters]
"Search Time Threshold (msecs)"=dword:00000032
新旧事件 ID 1644 的比较
OLD
新增功能
尝试此操作:使用事件日志返回查询统计信息
针对 DC 和 Windows Server 2012 R2 DC 重复Windows Server 2012以下操作。 每次搜索后,观察两个 DC 上的事件 ID 1644s。
使用 regedit,在 Windows Server 2012 R2 DC 上启用基于时间阈值的事件 ID 1644 日志记录,在 Windows Server 2012 DC 上启用。
执行多个超过阈值的 LDAP 搜索,并观察结果顶部的统计信息。 使用前面介绍的 LDAP 查询,并重复相同的搜索。
执行查询优化器无法优化的 LDAP 搜索,因为一个或多个属性未编制索引。
Active Directory 复制吞吐量改进
概述
AD 复制使用 RPC 进行复制传输。 默认情况下,RPC 使用 8K 传输缓冲区和 5K 数据包大小。 这具有净效果,即发送实例将传输三个数据包 (大约 15,000 个数据) 然后必须等待网络往返,然后再发送更多数据包。 假设往返时间为 3 毫秒,则最高吞吐量约为 40Mbps,即使在 1Gbps 或 10 Gbps 网络上也一样。
备注
此更新将最大 AD 复制吞吐量从 40Mbps 调整到大约 600 Mbps。
它增加了 RPC 发送缓冲区大小,从而减少了网络往返次数
在高速、高延迟网络上,效果最明显。
此更新通过将 RPC 发送缓冲区大小从 8K 更改到 256KB,将最大吞吐量增大到大约 600 Mbps。 此更改允许 TCP 窗口大小增长到超过 8K,从而减少网络往返次数。
备注
没有可配置的设置可修改此行为。
其他资源