本文介绍的问题 Windows 服务器 2008 R2 Service Pack 1 (SP1)-基于具有 Active Directory – 集成的区域的 DNS 服务器无法加载 DNS 区域。更新程序可以解决此问题。在安装此更新之前,请参见先决条件部分。
症状
有安全更新 3100465 ,或者在运行 Windows Server 2008 R2 的服务器上安装修补程序 3022780后,将出现此问题。
如何获取此更新
重要:如果您在安装此更新后安装了语言包,必须重新安装此更新。因此,我们建议您在安装此更新之前,安装您需要的所有语言包。有关详细信息,请参阅将语言包添加到 Windows。
方法 1: Windows 更新
提供此更新为 Windows Update 上推荐更新。有关如何运行 Windows 更新的详细信息,请参阅如何获取通过 Windows Update 更新。
方法 2: Microsoft 更新目录
要获得此更新的独立安装包,请转到Microsoft 更新目录网站。
已知的问题 1
安装更新 KB3145126 之后,您可能会遇到的 DNS 服务的崩溃。在这种情况下,应用程序日志中记录类似于以下内容的事件︰
Log Name: <Application> Source: <Application Error>
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Description:
Faulting application name: dns.exe, version: 6.1.7601.23375
Faulting module name: dns.exe, version: 6.1.7601.23375
Exception code: 0xc0000005
Faulting application path: C:\Windows\system32\dns.exe
Faulting module path: C:\Windows\system32\dns.exe
原因
此 DNS 服务崩溃,可能会出现一个 CNAME 和 SOA 如果 DNS 配置为具有记录这两个"@"记录。"@"记录标识的 DNS 区域根目录。这可以经常可以在 DNS 管理器中为记录 <与父文件夹相同> 文件名标识。SOA 和 NS 记录允许在此文件夹中。RFC 2181 描述名称唯一性检查的 CNAME 记录。根据 RFC 2181 CNAME 可能不存在的 <相同父名称> 文件夹中 ("@") 的一个区域。
解决方案
若要避免此问题,即可识别并删除"@"导致问题配置不当区域安装之前的 CNAME 记录更新 KB3145126。
来帮助识别有问题的区域,请运行下面的示例 PowerShell 脚本。默认情况下,Windows Server 2008 R2 中安装了 PowerShell。
$count = 0$var = get-wmiobject -query "select * from win32_service where name = 'dns'"
if ($var -ne $null)
{
if ($var.state.tolower() -eq "running")
{
[array] $global:badcnamedomains = $null
$var = get-wmiobject -namespace "root\microsoftdns" -query "select * from microsoftdns_zone"
if ($var -ne $null)
{
foreach ($var2 in $var)
{
$query = "select * from microsoftdns_cnametype where containername = '" + $var2.name + "'"
$var3 = get-wmiobject -namespace "root\microsoftdns" -query $query | where {$_.ownername -eq $var2.name}
if ($var3 -ne $null)
{
$count += 1
$global:badcnamedomains += $var3.domainname
}
}
}
else
{
write-host "No zones returned"
}
}
else
{
Write-Host "DNS Service is not running"
break;
}
}
if ($count -gt 0)
{
write-host "Total number of zones found: $count"
write-host "The zones are:"
write-host $global:badcnamedomains
}
elseif ($count -eq 0)
{
write-host "No zones found with the issue"
}
$count = $null
$global:badcnamedomains = $null
此脚本将标识与在本地保存 DNS 区域的 SOA 记录冲突的 CNAME 记录。如果 PowerShell 脚本运行时,您会看到"没有运行 DNS 服务"消息,,请确保在运行脚本之前已启动 DNS 服务。您可能需要卸载 KB3145126 更新首先使该 DNS 服务稳定。
要删除不符合 RFC 2181 基于 PowerShell 脚本返回的输出的 CNAME 记录,请在命令提示符下,键入以下命令,然后按 enter 键︰
@ Cname DNSCMD /recorddelete DNS 区域名
更新详细的信息
系统必备组件
若要安装此更新,请安装Windows Server 2008 R2 的 Service Pack 1。
注册表信息
若要应用此更新,您不必对注册表进行任何更改。
重启要求
您可能需要在应用此更新后,重启计算机。
更新替换信息
此更新不替换以前发布的更新。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
参考资料
了解 Microsoft 用于描述软件更新的术语。
文件信息
此软件更新的英语 (美国) 版本将安装具有下表所列属性的文件。
备注:
-
通过检查下表中显示的文件版本号,可以识别应用于特定产品、 里程碑 (RTM、 SPn) 和服务分支 (LDR、 GDR) 的文件:
版本
产品
里程碑
服务分支
6.1.760 1.23 xxx
Windows Server 2008 R2
SP1
LDR
-
GDR 服务分支仅包含那些广泛发布以解决广泛分布的关键问题的修复。LDR 服务分支包含除了广泛发布的修补程序的修补程序。
-
为每个环境安装的MANIFEST文件 (.manifest) 和MUM文件 (.mum) 在"其他文件信息"部分中被列出。MUM、 MANIFEST和相关的安全目录 (.cat) 文件,对要维护更新组件的状态非常重要。对其属性没有列出的安全目录文件已签署 Microsoft 数字签名。
x64 Windows Server 2008 R2
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Cache.dns |
不适用 |
3,198 |
03-Jun-2015 |
20:15 |
不适用 |
Dns.exe |
6.1.7601.23375 |
700,416 |
09-Mar-2016 |
17:58 |
x64 |
Dnsserver.events.xml |
不适用 |
609 |
03-Jun-2015 |
20:15 |
不适用 |
x64 Windows Server 2008 R2
文件属性 |
值 |
---|---|
文件名称 |
Amd64_07b49916ed76e55ab4e7ff188a15ff4e_31bf3856ad364e35_6.1.7601.23375_none_996a024c287e6f39.manifest |
文件版本 |
不适用 |
文件大小 |
710 |
日期(UTC) |
10-Mar-2016 |
时间 (UTC) |
19:50 |
平台 |
不适用 |
文件名称 |
Amd64_microsoft-windows-dns-server-service_31bf3856ad364e35_6.1.7601.23375_none_ac7575300681bfe0.manifest |
文件版本 |
不适用 |
文件大小 |
157,939 |
日期(UTC) |
09-Mar-2016 |
时间 (UTC) |
20:04 |
平台 |
不适用 |
文件名称 |
Update.mum |
文件版本 |
不适用 |
文件大小 |
1,671 |
日期(UTC) |
10-Mar-2016 |
时间 (UTC) |
19:50 |
平台 |
不适用 |