PowerShell 之 DNS Server (2)

来源:互联网 发布:怎么加盟淘宝网店 编辑:程序博客网 时间:2024/05/29 16:24

上节提到使用PowerShell命令来管理DNS server的两种方法,一是升级到powershell 4.0,二是加载DNSShell的模块,那么是否还有第三种方法呢?可能大家都想到了,WMI啊,WMI不是号称万能的么偷笑

1.NameSpace

在PowerShell中调用WMI时,我们需要搞清楚我们需要查询的对象属于哪个namespace,在哪个Class中。怎么知道DNS的信息在哪个namespace中,这个百度或者谷歌吧,或者记住我现在告诉你的ROOT\MicrosoftDNS。还有种方式是下载WMI explorer可以看到所有的namespace.

2. class

找到了names,还得知道相应的class,请参考以下链接:https://technet.microsoft.com/en-us/library/dd197491(v=ws.10).aspx

3.例子

<span style="font-size:14px;">Get-WmiObject -Namespace "ROOT\MicrosoftDNS" -Class MicrosoftDNS_Zone | select DnsServerName,ContainerName,Name,ZoneType,MasterServers</span>
说明:ZoneType=1就是主要区域,ZoneType=2就是辅助区域;
    MasterServers取的是主要区域的服务器
运行效果:


事情,往往没有想象中的顺利,原以为export出来就万事大吉了
Get-WmiObject -Namespace "ROOT\MicrosoftDNS" -Class MicrosoftDNS_Zone | select DnsServerName,ContainerName,Name,ZoneType,MasterServers | Export-Csv "C:\1\DNSZone.csv" -Encoding utf8 -NoTypeInformation
看看效果,出乎意外地让人失望:

System.String[]是什么鬼,看来还得调调,此时应该想起前面学习到的将属性写入一个数组再输出的方法。

Get-WmiObject -Namespace "ROOT\MicrosoftDNS" -Class MicrosoftDNS_Zone | Select-Object DnsServerName,ContainerName,Name,ZoneType,@{Name='MasterServer';Expression={$_.MasterServers -join '; '}} | Export-Csv "C:\1\DNSZone.csv" -Encoding utf8 -NoTypeInformation
运行效果,再看看?哈哈!是不是又瞬间觉得,世界如此美好?


剩下的还有那么多class,那么多属性,有兴趣的童鞋可自行研究研究。

0 0
原创粉丝点击