Website Monitoring mit PowerShell

Szenario: Ein Freund wollte sich neulich über die Website einer Whisky-Distillerie an einer Führung anmelden. Leider waren bereits alle Termine ausgebucht. Er vermutete jedoch, dass hin und wieder jemand absagt und es wieder Termine zur Verfügung hat.

Um nun nicht regelmäßig die Website besuchen zu müssen und nach verfügbaren Terminen zu schauen und auch um sofort über einen freien Termin benachrichtigt zu werden, wird das folgende PowerShell-Skript in regelmäßigen Abständen über die Windows Aufgabenverwaltung ausgeführt.

$URI = "https://webapl.suntory.co.jp/factory/yamazaki/course/c__00012/td__20180508/?lang=en"
$HTML = Invoke-WebRequest -Uri $URI
$VALUE = ($HTML.ParsedHtml.getElementsByClassName("emp_select")[0]).innerText
$PSEmailServer = "smtp.christianabele.de"
$utf8 = New-Object System.Text.utf8encoding

if($VALUE -eq "8× ")
{
   #Testergebnis negativ. Keine freien Termine.
}
else
{
   #Testergebnis positiv. Es gibt freie Termine.
   Send-MailMessage -Encoding $utf8 -to "XXXXXXXXX@gmail.com" -from "PowerShell <XXXXXXXXX@christianabele.de>" -Subject "Testergebnis POSITIV" -body "VERANSTALTUNGEN ZUR VERFUEGUNG! SCHNELL SEIN"
}

Das Skript besucht die Website, sucht das zu prüfende Element anhand der Klasse und liefert dann den Inhalt des Elements als Text zurück. Dieser wird dann mit einem Prüfwert verglichen und bei Bedarf eine Mail versendet.

Um PowerShell-Skripte über die Aufgabenverwaltung auszuführen, müssen diese über PowerShell selbst und nicht direkt aufgerufen werden:

powershell -file "C:\script.ps1"

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.