返回首页
当前位置: 主页 > 互联网技术 > 网络安全 >

Powershell如何管理DNS Server

时间:2016-09-21 13:09来源:电脑教程学习网 www.etwiki.cn 编辑:admin

DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
 
[
摘要]
本文介绍如何通过Powershell管理Windows DNS Server。

[应用]
场景:
当一个企业架构庞大,凭用户或管理员去记住许许多多的IP基本是不可能是事,这时候企业对DNS的依赖会更为突出,企业内的DNS服务器会存在成千上万甚至几十万条记录,这给了DNS管理员增加了运维难度,要在茫茫的记录中找到指定的记录修改、删除是非常耗时的,此时命令是很好的解决方法。
而且近年微软重点推荐的命令行管理工具Powershell也给了我们不少便捷之处 ,Powershell的通俗易懂让我们轻易地摆脱cmdlet和vbs语句的困扰。
适用版本:
Windows Server 2008 DNS及Windows Server 2012 DNS。
功能:
查询、添加、修改、删除DNS的A记录。
 [命令与分析]

  • 查询指定区域的所有A记录

Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | where {$_.ContainerName -eq "oa.contoso.com"} |Select TextRepresentation

备注:oa.contoso.com为想要查询的区域。

 

  • 查询单条A记录
  • Get-WmiObject -Namespace root\MicrosoftDNS -class MicrosoftDNS_ResourceRecord -filter "containername='oa.contoso.com' AND OwnerName='mail.oa.contoso.com'"
     


备注:oa.contoso.com为所在区域,mail.oa.contoso.com为所要查询的记录。

 

    添加单条A记录
    $dnsServerName=""
    $containerName="oa.contoso.com"
    $dns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
    $dns.CreateInstanceFromTextRepresentation($dnsServerName, $containerName, "test.oa.contoso.com IN A 10.1.1.123")

    备注:oa.contoso.com为所在区域,test.oa.contoso.com IN A 10.1.1.123指的是所添加的A记录主机test.oa.contoso.com对应于IP 10.1.1.123。

     

  • 修改指定A记录
  • $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | where {$_.OwnerName -eq "test.oa.contoso.com"}
     

$ARecord.Modify($ARecord.TTL,"10.1.1.124")

备注:test.oa.contoso.com 为所修改的A记录,修改到对应IP 10.1.1.124。

 删除指定A记录
$ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | where {$_.OwnerName -eq "test.oa.contoso.com"}
$ARecord.delete()
 


    备注:test.oa.contoso.com 为要删除的A记录。
     [补充]

     
  1. 掌握以上的基本命令,将有助于DNS记录的便捷管理;
  2. 以上命令主要针对单条记录的管理,掌握基本命令,对于批量操作,将是非常主要的部分,如果有兴趣可以先行研究批量的操作方法,后续我将提供使用Foreach-Object的方法批量管理DNS记录的方法。
------分隔线----------------------------
标签(Tag):Powershell
------分隔线----------------------------
推荐内容
猜你感兴趣