有没有办法在 Windows 2008 R2 DNS 服务器中搜索整个正向查找区域?
我想在所有资源记录中搜索NAME
和以查找子字符串。RDATA
答案1
您可以使用dnscmd
它来枚举区域中的记录。
dnscmd /enumrecords mydomain.com @
然后,您可以在其输出中搜索您的字符串。
dnscmd /enumrecords mydomain.com @ | find "somestring"
或者将其转储到文件中,然后使用你喜欢的任何工具解析该文件
dnscmd /enumrecords mydomain.com @ > mydomain_enum.txt
有一篇关于做类似事情的好文章这里。
而且,正如 voretaq 指出的那样,它确实适用于非 AD 集成区域。
答案2
对于 AD 集成区域,您应该能够通过 LDAP 搜索执行此操作。我不确定 MS 使用的 LDAP 模式,但它将涉及类似这样的过滤器(|(name=???)(rrdata=???))
——我几乎可以肯定他们不使用name
,rrdata
而是适当替换。
对于非集成区域,可能更容易以 BIND 格式转储区域文件并通过它进行 grep,或者触发 AXFR 并通过它进行 grep。我不知道 Windows 工具中有什么可以让你进行子字符串搜索。
当然,我上次接触 Windows DNS 工具 Win2K 时是 The New Hotness On The Block,所以我的知识有点陈旧……