2017-02-07 14 views
1

Я пытаюсь изменить официальный пример HA DC для работы с Windows Server 2016. https://github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-ha-2-dc После обновления модуля xActiveDirectory, который учитывает состояние гонки на Windows Server 2016, он дает мне еще одну ошибку , Окончательный сценарий, который находится в ConfigureADBDC.ps1 не удается:Azure DSC. Проблема с контроллером домена Active Directory HA с Windows Server 2016

   Script script1 
    { 
     SetScript = 
     { 
      $dnsFwdRule = Get-DnsServerForwarder 
      if ($dnsFwdRule) 
      { 
       Remove-DnsServerForwarder -IPAddress $dnsFwdRule.IPAddress -Force 
      } 
      Write-Verbose -Verbose "Removing DNS forwarding rule" 
     } 
     GetScript = { @{} } 
     TestScript = { $false} 
     DependsOn = "[xADDomainController]BDC" 

PowerShell DSC ресурс MSFT_ScriptResource не удалось выполнить функции Set-TargetResource с сообщением об ошибке: Не удалось получить информацию для сервера ADBDC. Когда я исполняю Get-DnsServerForwarder Я вижу это:

PS C:\Users\adAdministrator> Get-DnsServerForwarder 
    UseRootHint  : True 
    Timeout(s)   : 3 
    EnableReordering : True 
    IPAddress   : 
    ReorderedIPAddress : 

Однако через некоторое время он меняется на это:

PS C:\Users\adAdministrator> Get-DnsServerForwarder 
    UseRootHint  : True 
    Timeout(s)   : 3 
    EnableReordering : True 
    IPAddress   : 10.0.0.4 
    ReorderedIPAddress : 10.0.0.4 

Итак, мой вопрос. Для чего используется DnsServerForwarder? Это даже необходимо? Как можно решить эту проблему?

ответ

3

Ну, хак путь будет:

SetScript = { 
    do { 
     $dnsFwdRule = Get-DnsServerForwarder 
    } while ($dnsFwdRule.IPAddress -eq $null) 
    if($dnsFwdRule) { 
     Remove-DnsServerForwarder -IPAddress $dnsFwdRule.IPAddress -Force 
    } 
    Write-Verbose -Verbose "Removing DNS forwarding rule" 
} 

нота, это может привести к бесконечному циклу;), вы можете исправить это, добавив что-то вроде этого:

$i = 0 
do 
{ 
    $i++ 
    Start-Sleep 10 
    $dnsFwdRule = Get-DnsServerForwarder 
} 
while ($i -lt 10 -and $dnsFwdRule.IPAddress -eq $null) 

, как и для первый вопрос:

Командлет Get-DnsServerForwarder получает настройки конфигурации на DNS-сервере. Экспедитор - это сервер доменных имен (DNS) в сети, который используется для пересылки DNS-запросов для внешних DNS-имен на DNS-серверы за пределами этой сети.

+0

Спасибо! Я очень ценю ваши ответы! Небольшой вопрос, следует ли мне удалить его или нет? Как это повлияет на вещи? – WinBoss

+0

Это довольно сложный вопрос, посмотрите [здесь] (https://blogs.technet.microsoft.com/stdqry/2012/04/11/dns-auto-configuration-during-dcpromo/). Насколько я знаю, 127.0.0.1 является рекомендуемым DNS-форвардером для DC (или нет, который превратился бы в 127.0.0.1 при продвижении) – 4c74356b41

+0

Приветствия! Это очень полезно! – WinBoss