Zum Inhalt springen

Reporting mit Telegram Bots in Skripte einfügen

Liebe Leserinnen und Leser!

Um repetitive Prozesse in der Netzwerkverwaltung effizient erledigen zu können, kommt häufig Skripting zum Einsatz. Will man wissen, ob geskriptete Prozess erfolreich abgeschlossen wurden oder detailreiche Informationen zum Ablauf selbst, bietet Powershell detailliertes Logging und nativ viele Möglichkeiten, z.B. die Nutzung eines Mailservers, um Nachrichten und Logs an den Administrator zu schicken.

Eine weitere Möglichkeit stellt die Nutzung des Messaging-Dienstes Telegram dar, mit dem Sie bequem und gratis Reports an Ihr Smartphone senden können. Telegram ist zwar – was die NutzerInnenzahlen betrifft – nicht so populär wie WhatsApp, bietet aber eine gratis API, die sich für diverse Applikation einfach nutzen lässt. Dazu muss zuerst die App auf dem Smartphone installiert und ein Telegram-Konto eingerichtet werden, die weiteren Schritte können sowohl in der App, als auch im Browser durchgeführt werden, was für diese Anleitung genutzt wurde.

Um die API nutzen zu können, müssen Sie zuerst einen Bot anlegen. Darunter versteht man ein Programm, mit dem Sie automatisiert interagieren können. Die Einrichtung eines Bot für das Reporting erfolgt auch selbst mithilfe eines Bots, dem so genannten BotFather, was auch vom Humor der Coder zeugt. Um mit diesem zu kommunizieren und einen Bot anzulegen, suchen Sie nach dem Nutzer Botfather und starten Sie den Chat. Der Bot antwortet mit einer Reihe an Optionen, mit denen Sie einen Bot erstellen und später auch konfigurieren können.

Wie auf dem Screenshot ersichtlich, startet man die Erstellung eines neuen Bots, indem man dem BotFather im Chat den Befehl „/newbot“ sendet. Alle weiteren Informationen, die Telegram benötigt, werden im folgenden Dialog abgefragt. Wichtig für die Verwendung der Bots in Powershell sind zwei Informationen, die am Ende des Setup angezeigt werden: das API Token und die Chat ID.

Um den Bot in einem Skript nutzen und sich Logs schicken zu lassen, reicht folgender Code.

### Zugangsdaten zu Telegram Channel laden 

$BotKey = " *** Bot Key *** "
$BotChatID = " *** Chat ID des Bots *** " 

### Textbausteine definieren 

$Abschlussmeldung = "Das Skriptausführung wurde abgeschlossen, das Logfile befindet sich im Attachment." 

### Logfile anlegen 

$Logpath = "P:\fad\zum\Logfile.txt" 
$Logfile = Start-Transcript -Path 
$Logpath <# Codeblock #> 

### Logfile abschließen

Stop-Transcript

### Text versenden: https://core.telegram.org/bots/api#sendmessage 

Invoke-WebRequest "https://api.telegram.org/bot$BotKey/sendMessage?chat_id=$BotChatID&amp;text=$Logfile" 

### Logfile löschen 

Remove-Item -Path $Logpath -Force

Wie man mithilfe der Telegram API Befehle an die Powershell Konsole schicken kann, ist Gegenstand meines nächsten Beitrags! Wie immer gilt, der Code darf gerne verwendet, kopiert und nach Belieben verändert werden, aber alles auf eigene Gefahr!

Liebe Grüße,
Martin Stolzlechner

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar

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

vier × zwei =