如何获取 DNS 服务器中的总记录数(Windows Server 2003 - Active Directory 环境)
是否可以通过 Powershell/wmi 获取此信息?
更新:
到目前为止,我在 Powershell 中使用了这个:
& "d:\AdminTools\SupportTools\Windows2003\dnscmd.exe" SERVERDNS /enumrecords domain.local . > output.txt
gc output.txt | measure-object | select count
有什么建议 ?
答案1
一个简单的批处理文件怎么样......
@Echo Off
rem Enter the location of the Windows Support Tools below
set @SupportToolsLoc=c:\Program Files\Support Tools
rem Enter the domain name you want to count below
set @DomainName=foo.com
rem Enter DNS Server Name below, or a period for the local server
Set @DNSServer=.
setlocal ENABLEDELAYEDEXPANSION
set /a @RecordCount=0
"%@SupportToolsLoc%\dnscmd" %@DNSServer% /enumrecords %@DomainName% . >DNSRecords.txt
for /f "skip=1 tokens=*" %%f in ('type DNSRecords.txt') do set /a @RecordCount=!@RecordCount! + 1
set /a @RecordCount=!@RecordCount! - 1
If "%@DNSServer%"=="." echo There are !@RecordCount! records in the domain %@DomainName% on the local server
If not "%@DNSServer%"=="." echo There are !@RecordCount! records in the domain %@DomainName% on the DNS Server %@DNSServer%
pause
del /q DNSRecords.txt
endlocal
希望这可以帮助,
格伦