2013-10-08 101 views
0

我想要获取在特定DNS服务器(公司内部网络DNS)上具有A记录的所有机器的列表。DNS记录列表

到目前为止,我设法让所有使用NMAP在线的主机,并给它一个特定的子网来扫描(nmap -sN [subnet]),但不幸的是,当我给它一个大于/ 24。当然,另一种选择是ping一个给定范围内的所有IP,然后查看谁的答案,但这会花费太长时间。

我想将它包含在powershell脚本中,所以任何可以从CLI运行的东西都会很棒,任何编程语言中我可以编译并从CLI运行的东西都是很好的,任何需要手动输入的东西都不行太好了..

任何帮助将不胜感激!

编辑:如果在所有可能的情况下,将列表限制为单个区域会很好。

+0

我错过了什么呢? 我阅读了常见问题解答,并按顺序排列: 研究:自从我用nmap描述尝试以来,明显做到了,为什么它不是我想要的; 我试过了:见上面; 语言和平台:Powershell 3.0,平台Windows客户端和服务器; 代码:问题不包括代码(nmap文档中的小片段); 区域特定信息:我不相信这是相关的; 格式化拼写和语法:我可以看到没有错误; 这个问题有什么不清楚的地方?或者还有其他一些我不认为的观点? – Alberto

+0

问题是有目的的广泛,因为我正在寻找任何可行的解决方案,正如我在第3段中解释的那样。 谷歌并没有真正的帮助,我很遗憾没有DNS专家。我的研究提出了我描述的2种解决方法,但我也没有找到这种解决方案。 – Alberto

回答

0

关于PowerShell,不是很惊人的自动化,但你可以在DNS客户端cmdlet中使用一些东西。

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

获取帮助-examples

+0

呃,看起来很有趣,但显然这只会让我得到本地客户端缓存中的DNS记录列表,或者我阅读错误的页面? 然后Get-DnsServerResourceRecord cmdlet似乎仍然很有前途,即使它只能在Win 8或Server 2012上运行。 – Alberto

0

请使用强大的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