Last Updated on 17. April 2023 by Thomas J. Fehr
Mit Hilfe der „DNS WMI Services“ kann der Microsoft DNS Server verwaltet werden. Dies ermöglicht das Erstellen von Skripts zum Hinzufügen, Löschen oder Editieren von Zonen und Records.
Um mit den „DNS WMI Klassen“ zu arbeiten sind folgende Schritte notwendig:
- WMI Service initiieren (remote oder lokal)
- Mit Hilfe des WMI Service kann dann die benötigte „DNS WMI Klasse“ instanziiert werden
Lokalen WMI Service initiieren:
Dim objWMIService: Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\MicrosoftDNS")
Remote WMI Service initiieren:
Dim objSWbemLocator: Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Dim objWMIService: Set objWMIService = objSWbemLocator.ConnectServer(hostIP, _
"root\MicrosoftDNS", _
username, _
password, _
"", _
"")
Die Parameter:
- hostIP = IP des DNS-Server
- username = Benutzername
- password = Passwort
Neue „Primary-Zone“ erstellen:
Dim objDNSZone: Set objDNSZone = objWMIService.Get("MicrosoftDNS_Zone")
objDNSZone.CreateZone(zoneName,0)
Bedeutung der Parameter:
- zoneName = Name der neuen Zone (monsterli.ch, switch.ch, usw.)
- 0 = Zone des Typs: „primary zone“
Neue „Secondary-Zone“ erstellen:
Dim objDNSZone: Set objDNSZone = objWMIService.Get("MicrosoftDNS_Zone")
objDNSZone.CreateZone(zoneName,1,false,zoneName & "dns",array(nsMasterIP))
Dabei sind die Parameter:
- zoneName = Name der neuen Zone (Domain)
- 1 = Zone des Typs: „secondary zone“
- false = keine „AD integrated zone“
- zoneName & „dns“ = Name der Zonendatei
- array(nsMasterIP) = Array mit der IP des primären Server dieser Zone
Neuer A-Record erstellen:
Dim objItem: Set objItem = objWMIService.Get("MicrosoftDNS_AType")
objItem.CreateInstanceFromPropertyData(masterDNSServer, zoneName, subZoneName , 1, 600, hostIP)
Die Parameter:
- masterDNSServer = IP des primären Server
- zoneName = Name der Zone (Domain)
- subZoneName = gewünschter Hostname (www, mail, ftp… usw.)
- 1 = Record Class IN (Internet)
- 600 = TTL in Sekunden
- hostIP = IP-Adresse des Hosts
Um weitere Records wie NS, MX, CNAME, usw. zu erstellen, muss einfach die „DNS WMI Class“ geändert werden.
Zone löschen:
Um eine bestehende Zone zu löschen wird mit Hilfe der „.Get“ Funktion des WMI-Service die Zone selektiert und gelöscht.
Dim objServer: set objServer = objWMIService.Get("MicrosoftDNS_Server.name="".""")
Dim objItem: Set objItem = objWMIService.Get("MicrosoftDNS_Zone.ContainerName=""" & zoneName & """,DnsServerName=""" & objServer.name & """,Name=""" & zoneName & """")
if isObject(objItem) then
objItem.delete_
end if
Benutzte Parameter:
- zoneName = Name der Zone die gelöscht werden soll
- objServer.name = Name des verwendeten DNS-Server
- zoneName = Name der Zone die gelöscht werden soll
Nützliche Links