Windows Server 2008 R2 ベースの DNS サーバーで DNS ゾーンの読み込みが失敗しました。

適用対象: Windows Server 2008 R2 Service Pack 1Windows Server 2008 R2 DatacenterWindows Server 2008 R2 Enterprise

この資料で説明する問題、Windows Server 2008 R2 Service Pack 1 (SP1)-ベースの DNS サーバーを Active Directory 統合ゾーンは、DNS ゾーンの読み込みに失敗します。この問題を解決する更新プログラムがあります。この更新プログラムをインストールする前に、前提条件」を参照してください。

現象


この問題は、セキュリティ更新プログラムの 3100465または Windows Server 2008 R2 を実行しているサーバーにインストールされている修正プログラム 3022780のいずれかをした後に発生します。

この更新プログラムの入手方法


重要 この更新プログラムをインストールした後に言語パックをインストールした場合は、この更新プログラムを再インストールする必要があります。そのため、この更新プログラムをインストールする前に、必要な言語パックをすべてインストールすることをお勧めします。詳細については、「Windows への言語パックの追加」を参照してください。

方法 1: Windows Update

この更新プログラムは、Windows Update で推奨される更新プログラムとして提供されます。Windows Update を実行する方法の詳細については、 Windows Update から更新プログラムを取得する方法を参照してください。

方法 2: マイクロソフトの更新プログラム カタログ

この更新プログラムのスタンドアロン パッケージを取得するには、 Microsoft Update カタログの web サイトに移動します。

既知の問題 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 スクリプトを実行します。PowerShell は、Windows Server 2008 R2 では既定でインストールされます。

$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 サービスが開始されていることを確認します。DNS サービスの安定性を確認するには、最初の KB3145126 の更新プログラムをアンインストールする必要があります。

PowerShell スクリプトから返される出力に基づく RFC 2181 に準拠していない CNAME レコードを削除するには、コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

Cname @ DNSCMD/recorddelete の DNS ゾーンの名前
 

詳細な更新情報


必要条件

この更新プログラムをインストールするには、 Windows Server 2008 R2 Service Pack 1をインストールします。

レジストリ情報

この更新プログラムを適用するには、レジストリに変更を加える必要はありません。

再起動の必要性

この更新プログラムの適用後、コンピューターの再起動が必要になる場合があります。

更新プログラムの置き換えに関する情報

この更新プログラムを適用しても、以前にリリースされた更新プログラムは置き換えられません。

状況


マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

関連情報


Microsoft がソフトウェア更新プログラムを説明するために使用している用語について説明します。

ファイル情報


このソフトウェア更新プログラムの英語 (米国) 版では、次の表に示す各属性を持つファイル群がインストールされます。