Dieses Powershell Script ruft in einer Schleife den nslookup Befehl aus und schreibt die Ausgabe dann mit Zeitstempel in eine Textdatei.
# Konfiguration
$dnsServer = "8.8.8.8" # DNS-Server, den du überwachen möchtest
$logFile = "DNS_Monitoring_Log.txt" # Pfad zur Logdatei
$checkIntervalSeconds = 300 # Intervall zwischen den DNS-Abfragen in Sekunden
$monitorDurationHours = 8 # Überwachungsdauer in Stunden
# Hauptfunktion zur Überwachung des DNS-Servers
function MonitorDnsAvailability {
param(
[string]$dnsServer,
[string]$logFile,
[int]$checkIntervalSeconds,
[int]$monitorDurationHours
)
$endTime = (Get-Date).AddHours($monitorDurationHours)
while ((Get-Date) -lt $endTime) {
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$nslookupOutput = nslookup "example.com" $dnsServer 2>&1
$logEntry = "$timestamp - nslookup output for server $dnsServer:`r`n$nslookupOutput`r`n"
Add-Content -Path $logFile -Value $logEntry
Start-Sleep -Seconds $checkIntervalSeconds
}
}
# Überwachung starten
MonitorDnsAvailability -dnsServer $dnsServer -logFile $logFile -checkIntervalSeconds $checkIntervalSeconds -monitorDurationHours $monitorDurationHours
Write-Host "DNS-Überwachung abgeschlossen."