Aracılığıyla paylaş


Windows Server 2008 R2'de bölge çoğaltma kapsamını değiştirdikten sonra DNS bölge aktarımı seçenekleri sıfırlanır

Bu makale, bölge çoğaltma kapsamını değiştirdikten sonra DNS bölgesi aktarım seçeneklerinin sıfırlanması sorununu çözmeye yardımcı olur.

Özgün KB numarası: 4050194

Belirtiler

Aşağıdaki senaryoyu değerlendirin:

  • contoso.com adlı bir etki alanı, DC1.contoso.com ve DC2.contoso.com olmak üzere iki etki alanı denetleyicisi içerir.

  • Her iki etki alanı denetleyicisi de bölgeyi barındıran Etki Alanı Adı Sistemi (DNS) sunucularıdır Contoso.com .

  • Bölge çoğaltma kapsamı aşağıdaki değere ayarlanır:

    Etki alanındaki tüm etki alanı denetleyicilerine (Windows 2000 uyumluluğu için): contoso.com

  • DC1 ve DC2 üzerindeki contoso.com bölgesi, ikincil sunuculara Bölge aktarımlarına izin ver olarak yapılandırılır.

  • Bölge çoğaltma kapsamını aşağıdaki değere ayarlarsınız:

    Bu etki alanındaki etki alanı denetleyicilerinde çalışan tüm DNS sunucularına: contoso.com

    Bölge çoğaltma kapsamını ayarlama işleminin ekran görüntüsü.

  • Bu değişiklik DC2'ye çoğaltılır ve ardından contoso.com bölgesi DC2'de DNS hizmeti tarafından yeniden yüklenir.

Bu senaryoda DC2'deki bölge aktarımı ayarları kaldırılır. Aşağıdaki değişiklikler gerçekleşir:

  • Bölge aktarımları için izin ver onay kutusu temizlendi.

  • Daha önce bölge aktarımına izin verilen sunucuların listesi kaldırılır. Sunucu değerleri de kayıt defterinden kaldırılır.

    Bölge aktarımları için izin ver onay kutusunun temizlendiğini gösteren özellikler penceresinin ekran görüntüsü.

    Not

    Bu sorun oluştuğunda, DC1'de bölge aktarım ayarları etkilenmez.

Neden

Bu sorun, var olan bölge nesnesi bölümden silindiği ve çoğaltma kapsamı değiştirildiğinde ilgili bölümde yeni bir nesne oluşturulduğu için oluşur. Bu değişiklik tüm etki alanı denetleyicilerinde çoğaltılır.

DC2'de yoklama iş parçacığı değişikliği yeni bölümden çektiğinde için kayıt defteri ayarları sıfırlanır. SecureSecondaries değeri 3 olarak ayarlandığından bölge aktarımı devre dışı bırakıldı. Ayrıca, SecondaryServers değeri kaldırıldığından, bölge aktarımı listesindeki yapılandırılmış sunucular kaldırılır. DNS açısından bakıldığında, bu işlem farklı bir bölümde yeni bölge oluşturmaya benzer.

Çözüm

Çoğaltma kapsamını değiştirmeden önce bölge aktarımı ayarlarını not edin. Çoğaltma kapsamı değiştirildikten sonra bölge aktarımı ayarlarını yeniden yapılandırın.
Ayarları yedeklemek ve geri yüklemek için aşağıdaki betikleri de kullanabilirsiniz.

Not

Bu betikler olduğu gibi sağlanır. Bu betikleri üretim ortamında kullanmadan önce kapsamlı bir şekilde test etmenizi öneririz.

Yedekleme betiği

Aşağıdaki kodu BackupZoneTransferSettings.ps1 adlı bir dosya olarak kaydedin.

# Begin Script  
param([string]$ZoneName = "test2.com")  
#Build the vars  
$TargetRoot = "HKCU:\DNSZoneConfigMigration\"  
$TargetKeyPath = $TargetRoot  
$SourceRoot = "HKLM:\Software\Microsoft\Windows Nt\CurrentVersion\DNS Server\Zones\"  
$SourceKeyPath = $SourceRoot + $ZoneName  
#Copy the Item  
#Check for the presence of the item  
Get-Item HKCU:\DNSZoneConfigMigration -ErrorAction SilentlyContinue >$null  
if($?)  
{  
"DNSZoneConfigMigration key present already!"  
}  
else  
{  
New-Item -Path HKCU:\DNSZoneConfigMigration -ErrorAction SilentlyContinue >$null  
}  
if($?)  
{  
Copy-Item -Path $SourceKeyPath -Destination $TargetKeyPath -ErrorAction SilentlyContinue >$null  
if($?)  
  {  
"Key backed up in registry (Current User Hive) successfully!"  
  }
 else  
  {  
"Key Backup Failed.Error Code is " + $Error[0].Exception.Message  
  }  
}  
else  
{ "Unable to Create Backup Key.Error code is " + + $Error[0].Exception.Message + ".Exiting"  
}  
# End Script

Betiği geri yükleme

Aşağıdaki kodu RestoreZoneTransferSettings.ps1 adlı bir dosya olarak kaydedin.

# Begin Script  
param([string]$ZoneName = "test2.com")  
#Build the vars
$SourceRoot = "HKCU:\DNSZoneConfigMigration\"  
$SourceKeyPath = $SourceRoot + $ZoneName  
$DestinationRoot = "HKLM:\Software\Microsoft\Windows Nt\CurrentVersion\DNS Server\Zones\"  
$DestinationKeyPath = $DestinationRoot + $ZoneName  
#Copy the ItemProperty Values  
Copy-ItemProperty -Path $SourceKeyPath -Destination $DestinationKeyPath -Name "SecureSecondaries" -ErrorAction SilentlyContinue >$null  
if($?)
{  
    "SecureSecondaries Value Successfully Restored for " + $ZoneName  
    Copy-ItemProperty -Path $SourceKeyPath -Destination $DestinationKeyPath -Name "SecondaryServers" -ErrorAction SilentlyContinue >$null  
    if($?)  
    {  
       "SecondaryServers Value Successfully Restored for " + $ZoneName "Restore Successful! Deleting the backup" Remove-Item -Path $SourceKeyPath  
if(-Not $?)  
    {  
    "Unable to Delete Backup Key. Delete Manually. Error :" + $Error[0].Exception.Message  
}  
    }  
    else
    {
     "Failed to restore SecondaryServers value. " + $Error[0].Exception.Message  
    }  
}  
else  
{  
    "Failed to restore SecureSecondaries value. " + $Error[0].Exception.Message  
}
# End Script

Yedekleme betiği, belirli bir bölge için bölge aktarım ayarlarını yedekler. (Kolaylık olması için yedekleme, hive altındaki HKEY_CURRENT_USER kayıt defterinde depolanır.)

Not

İmzasız betiklere izin vermek için Set-ExecutionPolicy PowerShell cmdlet'ini çalıştırabilirsiniz.

Aşağıdaki ekran görüntüsündeki ikinci komut (vurgulanmış), "test3.com" adlı bölge için bölge aktarım ayarlarının yedeğini alır.

Bölge aktarımı ayarlarının yedeğini alma komutunun ekran görüntüsü.

Ayarların kayıt defterinde yedeklendiği yer

Ayarların yedeklendiği Kayıt Defteri Düzenleyicisi penceresinin ekran görüntüsü.

Bölge aktarım ayarlarını geri yüklemek için betiği çalıştırma (geri yükleme betiği yalnızca bu iki değeri geri yükler)

Geri yükleme betiğini çalıştıran Windows PowerShell penceresinin ekran görüntüsü.

Geri yükleme işleminden önce kayıt defterindeki bölge aktarımı ayarları

Geri yükleme işleminden önce bölge aktarımı ayarlarını içeren Kayıt Defteri Düzenleyicisi penceresinin ekran görüntüsü.

Geri yükleme işleminden sonra kayıt defterinde bölge aktarımı ayarları

Geri yükleme işleminden sonra bölge aktarımı ayarlarını içeren Kayıt Defteri Düzenleyicisi penceresinin ekran görüntüsü.

Not

Geri yükleme betiğini çalıştırdıktan sonra, değişiklikleri uygulamak için DNS hizmetini yeniden başlatmanız gerekir.

Daha Fazla Bilgi

Bölge aktarım ayarları depolama

Bölge aktarım ayarları, DNS sunucusundaki kayıt defterinde aşağıdaki yolda depolanır:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\<domain name>

Bölge aktarımı belirli sunuculara veya IP adreslerine ayarlandığında aşağıdaki değerler doldurulur:

  • SecureSecondaries, 0x2 olarak ayarlanır. Bu, Yalnızca aşağıdaki sunucular seçeneğine karşılık gelir.
  • SecondaryServers adlı çok dizeli bir değer, sunucuların IP adresleri kullanılarak oluşturulur.

Ayarlar

Bölge aktarımı ayarlarını içeren özellikler penceresinin ekran görüntüsü.

Kayıt Defteri

Bölge aktarımı ayarlarını içeren Kayıt Defteri Düzenleyicisi penceresinin ekran görüntüsü.

Not

Bölge aktarımı ayarları Active Directory'de depolanmaz. Bu nedenle, ayarlar Active Directory çoğaltmasının bir parçası olarak çoğaltılamaz.

DS yoklama iş parçacığı

DNS hizmeti, bölümleri düzenli aralıklarla yoklayan ve tüm bölgelerin listesini alan bir DS yoklama iş parçacığı tutar. Daha fazla bilgi için bkz. DNS Sunucusu Hizmeti Yeni veya Değiştirilmiş Veriler için AD'yi Ne Sıklıkta Denetler?
Varsayılan olarak, DNS hizmeti 180 saniyede bir (3 dakikada bir) Active Directory'de değişiklik yoklar. DsPollingInterval kayıt defteri anahtarını veya dnscmd /dspollinginterval anahtarını kullanarak bu işlemi denetleyebilirsiniz.

Not

anahtar, 0 ile 3.600 saniye arasında değerleri kabul eder. Ancak, 1 ile 29 değerlerine izin verilmez. Kabul edilebilir en düşük değer 30 saniyedir.

Daha fazla bilgi için bkz . Dnscmd yapılandırması.