您好我使用我的Windows Server 2012上的dnsmcd命令,以从CSV文件创build新的区域。
但是我需要改变SOAlogging上的TTL,所以我尝试这样做:
dnscmd /recordadd example.com `@ 300 SOA
但我有这个错误:
Command failed: DNS_ERROR_RECORD_FORMAT 9702 0x25E6
有办法做到这一点?
inheritance人修改权限开始logging的正确格式
dnscmd /recordadd zonename @ SOA primaryDNSservername responsibleemailipaddress serialnumber refreshinterval retryinterval expireinterval defaultTTL
如果您想知道为什么当您尝试更改SOAlogging(即增加区域的序列号)时,为什么会收到此错误DNS_ERROR_RECORD_ALREADY_EXISTS ,请检查您要更改的序列(新的)是否实际上高于当前的。 这个错误信息是令人困惑的,所以我希望它能帮你省下一些头,直到找出原因为止。
如果您觉得它有用,我使用了这个脚本,因为点击“增加”200个区域对我来说太过分了。
rem To increase serial on all zones: copy this to a script, as functions cannot be use from CLI echo on rem get the intersting zones first that you want to change echo. > %TEMP%\dnszones.txt for /f %%z in ('dnscmd /enumzones ^| findstr in-addr.arpa') do echo %%z >> %TEMP%\dnszones.txt rem take existing serials from all zones for /f %%z in (%TEMP%\dnszones.txt) do dnscmd /zoneprint %%z | findstr SOA > %TEMP%\dns.%%z.txt rem read the serials and increase them for /f %%z in (%TEMP%\dnszones.txt) do for /f "tokens=1-8*" %%a in (%TEMP%\dns.%%z.txt) do call:increase_serial %%z %%e goto end :increase_serial rem arg1=%~1 is the zone name, arg2 is existing serial @rem example format of the SOA record @rem 3600 SOA servername.domain.com. hostmaster.domain.com. 13 900 600 86400 3600 @rem as per https://technet.microsoft.com/en-us/library/cc816941(v=ws.10).aspx @rem var a is minimum-default-ttl - optional @rem var b is string SOA @rem var c is PrimSvr - server name with dot @rem var d is Admin - contact for admin @rem var e is serial @rem var f is Refresh - in seconds @rem var g is Retry - in seconds @rem var h is Expire - in seconds @rem var i is MinTTL - in seconds set /a INCREASED_SERIAL=%~2+1 @echo increase serial from %~2 to %INCREASED_SERIAL% on zone %1 for /f "tokens=1-8*" %%a in (%TEMP%\dns.%~1.txt) do dnscmd /RecordAdd %~1 @ SOA %%c %%d %INCREASED_SERIAL% %%f %%g %%h %%i goto :eof :end