【问题标题】:DNS records listDNS 记录列表
【发布时间】:2016-01-22 21:40:22
【问题描述】:

我正在尝试获取在某个 DNS 服务器(公司的内部网络 DNS)上具有 A 记录的所有计算机的列表。

到目前为止,我设法使用 NMAP 获取所有在线主机并为其指定一个特定子网进行扫描 (nmap -sN [subnet]),但不幸的是,当我为其指定一个大于 /24 的子网时,它经常崩溃.当然,另一种选择是对给定范围内的所有 IP 进行 ping 操作,看看谁会回答,但这需要的时间太长了。

我正在尝试将其包含在 powershell 脚本中,因此任何可从 CLI 运行的东西都会很棒,我可以从 CLI 编译和运行的任何编程语言的任何东西都会很好,任何需要手动输入的东西,不是这样太好了。。

任何帮助将不胜感激!

编辑:如果可能的话,最好将列表限制为单个区域。

【问题讨论】:

  • 我错过了什么?我阅读了常见问题解答并按顺序进行:研究:显然已经完成,因为我描述了尝试使用 nmap 以及为什么这不是我想要的原因;我尝试过的:见上文;语言和平台:Powershell 3.0,平台Windows Client and Server;代码:问题不包括代码(nmap 文档中的小 sn-p);地区特定信息:我不认为这是相关的;格式化拼写和语法:我看不到任何错误;这个问题有什么不清楚的地方吗?还是我没有考虑其他一些问题?
  • 问题是故意宽泛的,因为我正在寻找任何可行的解决方案,正如我在第 3 段中解释的那样。谷歌并没有真正的帮助,很遗憾我不是 DNS 专家。我的研究提出了我描述的两种解决方法,但都不是我正在寻找的解决方案。

标签: list powershell dns export dump


【解决方案1】:

关于 powershell,自动化程度并不高,但您可以在 DNS 客户端 cmdlet 中使用一些东西。

http://technet.microsoft.com/en-us/library/jj590772.aspx

获取帮助 - 示例

【讨论】:

  • 嗯,看起来很有趣,但显然这只允许我获取本地客户端缓存中的 DNS 记录列表,还是我读错了页面?再一次,Get-DnsServerResourceRecord cmdlet 似乎很有希望,即使它只在 Win 8 或 Server 2012 上运行..
【解决方案2】:

请使用这个强大的 GridView:

$server = "Your_DNS_Server"
$record = Get-WmiObject -Namespace "root\MicrosoftDNS" -ComputerName $server -Class MicrosoftDNS_AType
$record | Select DomainName,RecordData,OwnerName | Sort-Object -Property {[System.Version]$_.RecordData} | Out-GridView

【讨论】: