欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell脚本中控制Windows DNS服务的方法

程序员文章站 2023-02-17 10:06:47
powershell可以很方便的操作wmi,而dns服务又提供了很好的wmi支持,所以,powershell可以通过操作wmi来操作windows dns服务。 1、获取...

powershell可以很方便的操作wmi,而dns服务又提供了很好的wmi支持,所以,powershell可以通过操作wmi来操作windows dns服务。

1、获取dns对象。

复制代码 代码如下:
ps> $mydns = [wmiclass]"root\microsoftdns:microsoftdns_resourcerecord"

2、创建解析记录,使用createinstancefromtextrepresentation方法。

复制代码 代码如下:
ps> $mydns.createinstancefromtextrepresentation("服务器名称","域名","www.jb51.net in a 127.0.0.1")

说明:

1)createinstancefromtextrepresentation方法的原型如下:

复制代码 代码如下:
system.management.managementbaseobject createinstancefromtextrepresentation(system.string dnsservername, system.string containername, system.string textrepresentation)

2)服务器名称,如果是本机,可以设置为空。
3)域名就是jb51.net这样的。
4)www.jb51是子域名;in是网络类型(tcp/ip协议里面一般都是in,小编还没有见过别的);a表示是a记录,它解析到一个ip地址(后面跟的127.0.0.1就是);如果是mx表示是一个邮件记录,它解析到一个邮件服务器的地址;

3、powershell使用文件批量添加dns解析

复制代码 代码如下:
$dnsservername=""
$containername="jb51.net"
ps> $mydns = [wmiclass]"root\microsoftdns:microsoftdns_resourcerecord"
ps> get-content dnslistfile.txt | foreach-object {$mydns.createinstancefromtextrepresentation($dnsservername, $containername, $_)}

说明:dnslistfile.txt文件的格式如下:
复制代码 代码如下:
www.jb51.net in a 127.0.0.1
mail.jb51.net in a 127.0.0.2
jb51.net in mx mail.jb51.net

上来这个例子是做了一个www.jb51.net的a记录解析到127.0.0.1,然后做了一个mail.jb51.net的a记录解析到127.0.0.2,最后做了一个jb51.net的mx记录到mail.jb51.net这个主机。

小编参考了网上一些牛人的文章,细化了一下,希望对大家有所帮助。