powershell - Azure DSC。 Windows Server 2016 的 HA Active Directory 域 Controller 问题

标签 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 是用来做什么的?还需要这个吗?如何解决这个问题?

最佳答案

嗯,一种黑客的方式是:

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 服务器。

关于powershell - Azure DSC。 Windows Server 2016 的 HA Active Directory 域 Controller 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096973/

相关文章:

powershell - 无法在所需状态配置中运行节点和脚本

powershell - 如何使用 PowerShell 截断已知地址之后的二进制文件的末尾?

powershell - 如何将变量从 powershell 传递到 Perl 脚本?

c# - 是否可以以编程方式创建哈希规则?

azure - 在 Azure 中,作为资源组贡献者,为什么我无法创建存储帐户?应该采取哪些措施来防止出现这种情况?

azure - 使用具有 Azure DSC 扩展的自定义复合资源

Powershell 访问 Azure DevOps secret 变量

azure - 如何在 Azure Service Fabric 中发现仅供内部使用的 ASP.NET Core 无状态服务

azure - 通过 YML 按计划运行特定阶段

linux - 在 Windows Server 2012 R2 WMF 4.0 上安装 DSC 资源 nxComputerManagement 和 nxNetworking