加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

domain-name-system – 如何搜索域集成DNS条目

发布时间:2020-12-14 23:35:17 所属栏目:资源 来源:网络整理
导读:例: 我有一个名为server1.domain.local的服务器 我在各种正向查找区域中有很多指向server1.domain.local的CNAME条目 我想退出server1,并有一个新的服务器,server2,它将取代它. 我需要将所有指向server1.domain.local的CNAME更改为指向server2.domain.local.
例:

>我有一个名为server1.domain.local的服务器
>我在各种正向查找区域中有很多指向server1.domain.local的CNAME条目
>我想退出server1,并有一个新的服务器,server2,它将取代它.

我需要将所有指向server1.domain.local的CNAME更改为指向server2.domain.local.

我知道我可以创建server1.domain.local作为另一个CNAME,但我更愿意找到所有条目并单独更改它们.

如何在server.domain.local的所有正向查找区域中查找所有引用?

解决方法

Windows支持工具中的dnscmd实用程序可能是您最好的选择.您可以使用以下命令获取所有DNS区域的列表:dnscmd [servername] / EnumZones.您可以使用以下命令枚举每个区域中的所有CNAME记录:dnscmd [servername] / EnumRecords [区域名称]. / TYPE CNAME.

理论上,您可以在脚本中将这两者链接在一起,处理输出,并自动进行所需的更改(也可以使用带有/ RecordDelete和/ RecordAdd命令的dnscmd).这是我将留给你的一个练习(现在).

编辑:好的 – 我无法抗拒.这是脚本.它只会回显实际进行更改的命令.如果它能够满足您的需求,那么您可以将回送命令拉出来并让它们撕裂.

@echo off

set SERVER_TO_REPLACE=server1.domain.com
set REPLACEMENT_VALUE=server2.domain.com

rem Quick and dirty list of Primary zones that aren't Reverse zones
for /F "usebackq" %%i in (`dnscmd %1 /EnumZones ^| find " Primary" ^| find /v " Rev"`) do call :process_zone %1 %%i
goto end

:process_zone
rem Quick and dirty enumeration of all CNAME records in a zone
for /F "usebackq tokens=1,3,4" %%i in (`dnscmd %1 /EnumRecords %2 . /TYPE CNAME ^| find " CNAME"`) do call :process_RR %1 %2 %%i %%j %%k
goto end

:process_RR
rem Check a record and alter it if necessary
if /I "%5" EQU "%SERVER_TO_REPLACE%" (
  echo dnscmd %1 /RecordDelete %2 %3 %4 %5 /f
  echo dnscmd %1 /RecordAdd %2 %3 %4 %REPLACEMENT_VALUE%
)

:end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读