Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera pomoc w rozwiązaniu problemu polegającego na tym, że opcje transferu strefy DNS są resetowane po zmianie zakresu replikacji strefy.
Oryginalny numer KB: 4050194
Symptomy
Rozważmy następujący scenariusz:
Domena o nazwie contoso.com zawiera dwa kontrolery domeny, DC1.contoso.com i DC2.contoso.com.
Oba kontrolery domeny są serwerami systemu nazw domen (DNS), które hostują strefę
Contoso.com
.Zakres replikacji strefy jest ustawiony na następującą wartość:
Do wszystkich kontrolerów domeny w domenie (w przypadku zgodności systemu Windows 2000):
contoso.com
Strefa contoso.com na DC1 i DC2 jest skonfigurowana do zezwalania na transfery stref do serwerów pomocniczych.
Zakres replikacji strefy należy ustawić na następującą wartość:
Do wszystkich serwerów DNS uruchomionych na kontrolerach domeny w tej domenie:
contoso.com
Ta zmiana jest replikowana do dc2, a następnie strefa contoso.com jest ponownie ładowana przez usługę DNS na DC2.
W tym scenariuszu ustawienia transferu strefy na dc2 są usuwane. Występują następujące zmiany:
Pole wyboru Zezwalaj na transfery stref jest wyczyszczone.
Lista serwerów, do których wcześniej dozwolony był transfer strefy, jest usuwana. Wartości serwera są również usuwane z rejestru.
Uwaga 16.
W przypadku wystąpienia tego problemu ustawienia transferów stref na DC1 nie mają wpływu.
Przyczyna
Ten problem występuje, ponieważ istniejący obiekt strefy jest usuwany z partycji, a nowy obiekt jest tworzony w odpowiedniej partycji po zmianie zakresu replikacji. Ta zmiana jest replikowana na wszystkich kontrolerach domeny.
Gdy wątek sondowania na DC2 ściąga zmianę z nowej partycji, ustawienia rejestru są resetowane. Transfer strefy jest wyłączony, ponieważ wartość protokołu SecureSecondaries jest ustawiona na 3. Ponadto wszystkie skonfigurowane serwery na liście transferu strefy są usuwane, ponieważ wartość SecondaryServers jest usuwana. Z perspektywy DNS ten proces przypomina tworzenie nowej strefy w innej partycji.
Rozwiązanie
Przed zmianą zakresu replikacji zanotuj ustawienia transferu strefy. Ponownie skonfiguruj ustawienia transferu strefy po zmianie zakresu replikacji.
Możesz również użyć następujących skryptów, aby utworzyć kopię zapasową i przywrócić ustawienia.
Uwaga 16.
Te skrypty są udostępniane w sposób ciągły. Zalecamy dokładne przetestowanie tych skryptów przed ich użyciem w środowisku produkcyjnym.
Skrypt kopii zapasowej
Zapisz następujący kod jako plik o nazwie BackupZoneTransferSettings.ps1.
# 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
Przywracanie skryptu
Zapisz następujący kod jako plik o nazwie RestoreZoneTransferSettings.ps1.
# 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
Skrypt kopii zapasowej wykonuje kopię zapasową ustawień transferu strefy dla określonej strefy. (Dla wygody kopia zapasowa jest przechowywana w rejestrze HKEY_CURRENT_USER
w gałęzi).
Uwaga 16.
Możesz uruchomić polecenie cmdlet Set-ExecutionPolicy programu PowerShell, aby zezwolić na niepodpisane skrypty.
Drugie polecenie (wyróżnione) na poniższym zrzucie ekranu wykonuje kopię zapasową ustawień transferu strefy dla strefy o nazwie "test3.com".
Miejsce tworzenia kopii zapasowej ustawień w rejestrze
Uruchomienie skryptu w celu przywrócenia ustawień transferu strefy (skrypt przywracania przywraca tylko te dwie wartości)
Ustawienia transferu strefy w rejestrze przed operacją przywracania
Ustawienia transferu strefy w rejestrze po operacji przywracania
Uwaga 16.
Po uruchomieniu skryptu przywracania należy ponownie uruchomić usługę DNS, aby zastosować zmiany.
Więcej informacji
Magazyn ustawień transferu strefy
Ustawienia transferu strefy są przechowywane w rejestrze na serwerze DNS w następującej ścieżce:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\<domain name>
Po ustawieniu transferu strefy na określone serwery lub adresy IP zostaną wypełnione następujące wartości:
- Ustawienie SecureSecondaries ma wartość 0x2. Odpowiada to opcji Tylko następującym serwerom .
- Wartość wielociągowa o nazwie SecondaryServers jest tworzona przy użyciu adresów IP serwerów.
Ustawienia
Rejestr
Uwaga 16.
Ustawienia transferu strefy nie są przechowywane w usłudze Active Directory. W związku z tym ustawienia nie są replikowane w ramach replikacji usługi Active Directory.
Wątek sondowania DS
Usługa DNS utrzymuje wątek sondowania DS, który okresowo sonduje partycje i pobiera listę wszystkich stref. Aby uzyskać więcej informacji, zobacz Jak często usługa serwera DNS sprawdza usługę AD pod kątem nowych lub zmodyfikowanych danych?
Domyślnie usługa DNS sonduje usługę Active Directory pod kątem zmian co 180 sekund (3 minuty). Ten proces można kontrolować za pomocą klucza rejestru DsPollingInterval lub przełącznika dnscmd /dspollinginterval .
Uwaga 16.
Przełącznik akceptuje wartości z zakresu od 0 do 3600 sekund. Jednak wartości z zakresu od 1 do 29 nie są dozwolone. Minimalna akceptowalna wartość to 30 sekund.
Aby uzyskać więcej informacji, zobacz Konfiguracja dnscmd.