AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 435541
Accepted
djsumdog
djsumdog
Asked: 2012-10-07 12:20:55 +0800 CST2012-10-07 12:20:55 +0800 CST 2012-10-07 12:20:55 +0800 CST

在 Active Directory 中使用 PowerShell,如何将具有给定 IP 的所有 DNS A 记录更改为新 IP?

  • 772

我们一直在移动数据中心,我有很多不正确的旧记录,但在 DNS 中作为 CNAME 记录,但是具有直接 IP(例如 192.168.100.n)的 A 记录,它们都在移动到新子网 (10.19.100.n)。

我只需要编写一个 powershell 脚本来更改所有这些记录。我找到了这个网站:

http://www.indented.co.uk/index.php/2008/12/30/administering-microsoft-dns-in-powershell/

从中我制作了这个简单的脚本:

$dnsServer = "meldc2"

$scope = New-Object Management.ManagementScope("\\$dnsServer\root\MicrosoftDNS")
$path = New-Object Management.ManagementPath("MicrosoftDNS_Zone")
$options = New-Object Management.ObjectGetOptions($Null,[System.TimeSpan]::MaxValue, $True)
$ZoneClass= New-Object Management.ManagementClass($scope,$path,$options)
$Zones = Get-WMIObject -Computer $dnsServer -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone"
$Zones | Get-Member
foreach($Z in $Zones) {
  $Z | Select-Object Name,DsIntegrated,ZoneType,Reverse,Data
}

但这只会让我得到一个根区域列表。我不明白如何遍历每个区域中的所有条目。此外,我看到的所有示例都涉及添加新区域,但我找不到任何关于修改现有 A 记录的示例。

domain-name-system
  • 1 1 个回答
  • 2320 Views

1 个回答

  • Voted
  1. Best Answer
    Ansgar Wiechers
    2012-10-07T12:34:43+08:002012-10-07T12:34:43+08:00

    我将dnscmd用于修改 DNS 记录:

    dnscmd meldc2.example.com /recorddelete example.com A host.example.com
    dnscmd meldc2.example.com /recordadd example.com host A 10.19.100.n
    

    这可以用batchor中的一个循环包装PowerShell,例如:

    $domain = "example.com"
    dnscmd /enumrecords $domain `@ /type A | % {
      $name = $_.split(" ")[0]
      $ip = $_.split("`t")[-1] -replace "192.168.100", "10.19.100"
      dnscmd /recorddelete $domain A "$name.$domain"
      dnscmd /recordadd $domain $name A $ip
    }
    
    • 4

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve