Scenario: Site monitoring using PowerShell
Script below:
#Define URL to monitor
$URL=”http://intranet.pbnet.local/Pages/Home.aspx”
clear
#Define LogFile
$log = “C:\NOC\intranet-mon.csv”
# If logfile already exists, delete it as a new one will be created
$filename=$log
if (Test-Path $filename)
{
Remove-Item $filename
}
#Define Function GetResponse
function GetResponseTime()
{
$date=get-date
$logtime=$date.ToShortDateString() + ” ” + $date.ToLongTimeString()
Write-Host $logtime -NoNewline -ForegroundColor Yellow
Write-Host ” === Checking” $URL “Response time ==” -NoNewLine
$request=[System.Net.WebRequest]::Create($URL)
$request.UseDefaultCredentials = $true
$request.Timeout = 9000000;
$starttime=Get-Date -DisplayHint time
$request.GetResponse() > null
$stoptime=Get-Date -DisplayHint time
$duration=$stoptime-$starttime
Write-Host $duration.TotalSeconds -ForegroundColor Green
$logduration=$duration.TotalSeconds
$logrequest=$logtime + “,” + $logduration
$logrequest | Out-File $log -Append
}
# Loop until Control-C
# Wait for 5 minutes (300 seconds) and re-run
while ($true)
{
GetResponseTime
Start-Sleep -s 300
}
Exit
