Powershell DNS Update

Mindestens seit Windows 2008 wird beim Anlegen eines Records im DNS auf jedes einzelne Objekt die Default-TTL der Zone kopiert.
Stellt man nun, aus welchen Gründen auch immer, die Default-TTL nach unten, so erhält jeder neu angelegte statische DNS Record diese Default-TTL.
Ein Heraufsetzen der Default-TTL der Zone ändert aber die zwischenzeitlich angelegten Objekte nicht mehr. Somit kann es vorkommen, daß viele Objekte mit einer viel zu kleinen TTL existieren. Das Ändern eines jeden Objektes kann eine langwierige Prozedur werden- und genau hier kommt das folgende Script zum Einsatz.
Das Script sucht auf einem DNS-Server und in einer definierten Zone nach statischen A-Records, deren TTL kleiner oder gleich der definierten MinTTL ist und ändert die gefundenen Einträge auf den angegebenen TTL Wert.
$MinTTL = 900
$NewTTL = 3600
$Counter = 0
$ServerName = "DNSSERVER"
$ContainerName = "DOMAIN"
Write-Host "DNS Server: "$ServerName" - "$ContainerName
 
$arrRecords = Get-WMIObject -Computer $ServerName `
    -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_AType" `
    -Filter "ContainerName='$ContainerName' AND TimeStamp=0" `
  | Select-Object OwnerName,TTL, @{n="TimeStamp";e={"Static"}}
 
ForEach ($RecordItem In $arrRecords) {
  if ($RecordItem.TTL -le $MinTTL ) {
    Write-Host "Working on "$RecordItem.OwnerName
  $ownername = $RecordItem.OwnerName 
  $arrEntry = Get-WmiObject -ComputerName $ServerName `
    -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_AType" `
    -Filter "OwnerName = '$ownername'" 
 
  $arrEntry.Modify($NewTTL)
  $Counter += 1
  }
}
Write-Host $Counter" records affected"