我正在尝试使用以下Powershell脚本解析最新的DNS CName。但是由于DNS服务器缓存,我得到的缓存主机名不是最新的CName。 无论如何要避免这种情况并获得最新结果? (如digwebinterface.com中一样)
然后,我要调用第三方DNS管理API,该API将修改或创建DNS CName映射。为此,我需要最新的dns数据。
#resolve the dns host name
$resolvedCName = Resolve-DnsName -Name $vanityHostName -DnsOnly -Type CNAME |
Select-Object -First 1 -Property Name,NameHost
write-host $resolvedCName.NameHost
答案 0 :(得分:2)
这不是PowerShell问题或错误。这是环境条件。
为什么您不只是在执行操作时清除缓存?
您是在说DnsClientCache cmdlet或Ipconfig -FlushDNS不能给您带来什么?
The Clear-DnsClientCache cmdlet删除DNS客户端缓存的所有内容。运行此cmdlet等效于运行ipconfig / flushdns。
Get-Command -Name Clear-DnsClientCache | Format-Table -AutoSize
<#
CommandType Name Version Source
----------- ---- ------- ------
Function Clear-DnsClientCache 1.0.0.0 DnsClient
#>
# get function / cmdlet details
Get-Command -Name Clear-DnsClientCache -Syntax
(Get-Command -Name Clear-DnsClientCache).Parameters.Keys
Get-help -Name Clear-DnsClientCache -Full
Get-help -Name Clear-DnsClientCache -Online
Get-help -Name Clear-DnsClientCache -Examples
ipconfig /?
<#
USAGE:
ipconfig [/allcompartments] [/? | /all |
/renew [adapter] | /release [adapter] |
/renew6 [adapter] | /release6 [adapter] |
/flushdns | /displaydns | /registerdns |
/showclassid adapter |
/setclassid adapter [classid] |
/showclassid6 adapter |
/setclassid6 adapter [classid] ]
where
adapter Connection name
(wildcard characters * and ? allowed, see examples)
Options:
...
/flushdns Purges the DNS Resolver cache.
/registerdns Refreshes all DHCP leases and re-registers DNS names
…
#>
答案 1 :(得分:0)
对于负责的nMe服务器更改地址时您需要进行更改的重复DNS测试,请直接查询负责的namd服务器。
清除客户端缓存不会影响Resolve-DNSName ]
,因为它等同于NSLookup
,因此直接查询远程服务器,而不使用主机的常规解析程序机制。
因此,您应该使用六种方法(例如arin或dnstoolbox)找到$VanityHostName
的名称服务器,然后将站点的名称服务器指定为查询中的服务器,如下所示(4.2.2.2是网站名称服务器地址的占位符。)
#resolve the dns host name
$resolvedCName = Resolve-DnsName -Name $vanityHostName -DnsOnly -Type CNAME -Server '4.2.2.2' | Select-Object -First 1 -Property Name,NameHost
write-host $resolvedCName.NameHost
答案 2 :(得分:0)
道歉,最后我决定使用DNS解决方案(Ansible Tower)API来获取主机名的CName。
Powershell Resolve-DnsName -Dns仅花费一些时间来传播DNS。但是,我的发布管道希望在几分钟内完成传播。实际上,它正在对主机名进行几处更改。
使用-DnsOnly开关将仅使用DNS协议来解析查询。即使这样也需要一些时间才能解决最新的DNS结果。因此,我必须使用该API,并且它可以正常工作而不会出现任何延迟问题。