In SharePoint Logs nach einer Korrelations-ID suchen

Hier ein Beispiel wie man die SharePoint Log-Dateien anhand einer bestimmten Korrelations-ID filtert und anzeigt. Nachfolgenden Text hierfür in die SharePoint-Verwaltungsshell kopieren und eine Korrelations-ID einsetzen. Das Ergebnis wird in diesem Beispiel in eine Datei „ULSlogs.txt“ geschrieben.

Get-splogevent | ?{$_.Correlation -eq "<Correlation ID>"} | select Area, Category, Level, EventID,Message | Format-List > C:\ULSlogs.txt

 

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"