我正在尝试修改官方 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/