#查詢DNS可用類
Get-WmiObject -Namespace root\MicrosoftDNS -List
#查詢所有資源記錄
$mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" $mydns = [WMIClass]"\\$Server\ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
#查詢已有區域
gwmi -Namespace root\microsoftdns -Class MicrosoftDNS_zone |select ContainerName
#查詢 ddv.com區域下的所有A記錄
Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.ContainerName -eq "ddv.com"} |Select TextRepresentation
#查詢單條A記錄
#查詢 bb.ddv.com 的A記錄 $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class MicrosoftDNS_ResourceRecord -filter "containername='ddv.com' AND OwnerName='bb.ddv.com'"
#查詢 bb.ddv.com 的A記錄 $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"}
#修改A記錄
#修改A記錄 bb.ddv.com 的IP指向為172.0.0.23
$ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"}
$ARecord.Modify($ARecord.TTL,"127.0.0.223")
#刪除A記錄
#刪除A記錄 bb.ddv.com $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"} $ARecord.delete()
#添加A記錄
#添加單條A記錄 bb.ddv.com IN A 127.0.0.3 $dnsServerName="" $containerName="ddv.com" $dns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" $dns.CreateInstanceFromTextRepresentation($dnsServerName, $containerName, "bb.ddv.com IN A 127.0.0.3")
#批量添加A記錄 $dnsServerName="" $containerName="ddv.com" $dns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" Get-Content D:\dnsListFile.txt | Foreach-Object {$dns.CreateInstanceFromTextRepresentation($dnsServerName, $containerName, $_)}
dnsListFile.txt內容如下:
aaa.ddv.com IN A 127.0.0.1
bb.ddv.com IN A 127.0.0.2
#查詢轉發服務器
gwmi -Namespace "root\MicrosoftDNS" -class "MicrosoftDNS_Server" | Select-Object -ExpandProperty Forwarders
From:http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/13/manage-dns-in-a-windows-environment-by-using-powershell.aspx