'------------------------------------------------------------------------- ' DNSAge ' ' Beschreibung ' Lieset das alter der DNS Einträge und löscht diese optional ' ' Voraussetzung ' - Ausführender Benutzer ist lokaler Admin auf dem DNS-server ' ' Version 1.0 FC 18. 08.2008 ' Version 1.1 ' neue Defaults und Inputbox ' Age in Min ' Version 1.2 ' Tippfehler, vergessen 6 ;statt, etc korrigiert ' Version 1.3 FC 16.06.2009 ' Vergleich war buggy da MaxAge ein String war Clng ' Version 1.4 FC 19. Mao.2010 ' Korrektur Zeile 52, da war ein Anfuerhungszeichen zu viel ' Offen ' Ausgabe "Deleted" ins Eventlog/Logfile ' Ausgabe Status als CSV-Datei '------------------------------------------------------------------------- Option Explicit '~ On Error Resume Next dim server, domain, maxage Server=InputBox("Bitte DNS Servername eingeben oder . als localhost","ServerName",".") ' server = "." domain=InputBox("Bitte DNS Zone eingeben oder leer für alle Einträge","DNSZone","") ' domain = "" maxage=InputBox("Maximales Alter in Minuten, zum löschen. 0 = nichts löschen","maximales Alter","0") ' maxage = 43200 ' 30 Tage dim objWMIService, colItems, objItem, timestamp, age Set objWMIService = GetObject("winmgmts:\\" & SERVER & "\root\MicrosoftDNS") if DOMAIN = "" then Set colItems = objWMIService.ExecQuery("Select * FROM MicrosoftDNS_AType",,48) else Set colItems = objWMIService.ExecQuery("Select * FROM MicrosoftDNS_AType where DomainName=""" & DOMAIN & """",,48) end if WScript.Echo "datetime;status;name;ip;timestamp;age" For Each objItem In colItems If objItem.TimeStamp > 0 Then Timestamp = DateAdd("h", objItem.TimeStamp, "1/1/1601 00:00:00 AM") age = datediff("n",timestamp,now) Else Timestamp = "0" age = 0 End If if (clng(age) < clng(maxage)) or (maxage = 0) then WScript.Echo now & ";FOUND;" & objItem.OwnerName & ";" & objItem.IPAddress & ";" & Timestamp & ";" & age else WScript.Echo now & ";DELETE;" & objItem.OwnerName & ";" & objItem.IPAddress & ";" & age ' objitem.delete_ end if Next wscript.echo "Finish"