Azure DSC。 Windows Server 2016中的HA Active Directory域控制器问题

时间:2017-02-07 18:12:06

标签: powershell azure dsc

我尝试修改官方HA DC示例以使用Windows Server 2016. https://github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-ha-2-dc 在更新了解决Windows Server 2016上竞争条件的xActiveDirectory模块之后,它又给我一个错误。驻留在ConfigureADBDC.ps1中的最终脚本失败:

                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用于?甚至需要吗?如何解决这个问题?

1 个答案:

答案 0 :(得分: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 cmdlet在DNS服务器上获取配置设置。转发器是网络上的域名系统(DNS)服务器,用于将外部DNS名称的DNS查询转发到该网络外部的DNS服务器。