tacticalrmm/scripts/dnscheck.ps1

58 lines
1.2 KiB
PowerShell

## names of hostname to run DNS checks against please leave the name in brackets
$hostname = 'bbc.com'
## allowed time for DNS check to be done (Milliseconds)
$time = 100
write-host -NoNewLine "Verifying" $hostname " ... "
## Do a ping test to ensure hostname can be contacted
if (Test-Connection $hostname -Count 1 -ErrorAction SilentlyContinue)
{
write-host "Ping test passed for $hostname"
}
else
{
write-host "Ping Test Failed for $hostname"
exit 1
}
## Test if the DNS record exists or not
try
{
$dnscheck = [System.Net.DNS]::GetHostByName($hostname)
$test = $true
}
catch
{
Write-Output "Unable to resolve DNS for $hostname"
exit 1
}
## Do some verification if DNS record exists
if($test)
{
## Check time taken in Milliseconds to resolve hostname
$start_time = Get-Date
nslookup $hostname
$timetaken = $((Get-Date).Subtract($start_time).Milliseconds)
Write-Output "Time taken: $timetaken Milliseconds"
if ($timetaken -ge $time)
{
write-host "DNS lookup for $hostname took longer than $time Milliseconds"
exit 1
}
else
{
Write-Output "Everything appears fine with your DNS for $hostname"
exit 0
}
}
Exit $LASTEXITCODE