【发布时间】:2018-12-24 04:24:55
【问题描述】:
我正在尝试创建一个 PowerShell 脚本来执行以下操作:
- 打开我的 CSV 文件。 A 列具有服务器的主机名。 B 列有 IP 地址
- 然后我想查看主机名是否存在于 DNS 中。我检查第一个主机名,如果主机存在,则继续下一个主机名。如果没有,请使用主机名和 ip 将新的 A-Record 添加到 DNS。
我的问题是,当它检查记录是否存在于 DNS 中时,它说该记录不存在,然后尝试创建它,而实际上它确实存在于 DNS 中。 这是我的脚本:
# Declare Variables. These variables are different in each domain
$ZoneName = "domain.com"
$DNSServer = "domain1.domain.com"
$ExistsInDNS = "C:\myScripts\DNSScavenging\RestoreDNSRecords\ExistsInDNS.txt"
$RestoredToDNS = "C:\myScripts\DNSScavenging\RestoreDNSRecords\RestoredToDNS.txt"
$DNSRecords = Import-Csv -path "C:\myScripts\DNSScavenging\RestoreDNSRecords\dnsrestoretest.csv" -Header "Server","IP"
foreach ($DNSRecord in $DNSRecords){
# Check DNS to see if the Server and IP exists
write-host "Checking to see if $($DNSRecord.Server) exists in DNS"
$DNSCheck = [System.Net.DNS]::GetHostByName($DNSRecord.Server)
if ($($DNSCheck.HostName) -contains $($DNSRecord.Server)) {
write-host "$($DNSRecord.Server) $($DNSRecord.IP) exists in DNS" -ForegroundColor "Green"
write-output "$($DNSRecord.Server) $($DNSRecord.IP)" | out-file $ExistsInDNS -Append
} else {
write-host "$($DNSRecord.Server) $($DNSRecord.IP) does not exist in DNS. Restoring $($DNSRecord.Server) $($DNSRecord.IP) in DNS" -ForegroundColor "Yellow"
write-output "$($DNSRecord.Server) $($DNSRecord.IP)" | out-file $RestoredToDNS -Append
# Add record into DNS
Add-DnsServerResourceRecordA -ComputerName $DNSServer -ZoneName "$ZoneName" -Name $DNSRecord.Server -AllowUpdateAny -IPv4Address $DNSRecord.IP
}
}
【问题讨论】:
标签: windows powershell server dns