1 Pluspunkt 0 Minuspunkte
Mir fällt auf das bestimmte Domains ab und zu online sind wenn ich in meinem Active Directory eine Website aus dem Internet aufrufe. Ich weiß aber dass es den DNS Namen gibt weil ich ihn registriert habe. Jetzt würde ich gerne über Nacht ein Powershell Script laufen lassen dass alle Paar Sekunden ein nslookup durchführt und die Ausgabe in eine Textdatei schreibt mit dem Datum dazu so dass ich weiß wann die Auflösung funktioniert hat und wann nicht.
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

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."
von (410 Punkte)