Αποστολή μηνυμάτων Telegram από ένα σενάριο PowerShell

Μπορείτε να χρησιμοποιήσετε το Messenger του Telegram ως εργαλείο ειδοποιήσεων για να λαμβάνετε άμεσες αναφορές για διάφορα συμβάντα υποδομής, αποτελέσματα εκτέλεσης σεναρίων ή εργασίες προγραμματισμού. Αυτό το άρθρο σάς δείχνει πώς να χρησιμοποιήσετε το PowerShell για να στείλετε μια ειδοποίηση κειμένου σε ένα κανάλι ή μια ομάδα Telegram μέσω του API Bot.

Αρχικά, δημιουργήστε ένα νέο ρομπότ Telegram χρησιμοποιώντας@BotFather. Βρείτε το στον πελάτη Telegram και στείλτε του τις ακόλουθες εντολές:
/start
/newbot

Καθορίστε το όνομα και το όνομα χρήστη του bot. Το BotFather θα δημιουργήσει ένα διακριτικό HTTP που πρέπει να αντιγράψετε και να αποθηκεύσετε.

Για να στείλετε ένα μήνυμα σε μια συνομιλία στο Telegram ή σε έναν συγκεκριμένο χρήστη, πρέπει να γνωρίζετε το αναγνωριστικό του. Σε αυτό το παράδειγμα, θα στείλω ειδοποιήσεις στον εαυτό μου, γι' αυτό χρησιμοποιήστε@my_id_botγια να βρω το αναγνωριστικό μου στο Telegram:

/start

Your user ID: 987654321

Για να στείλετε ένα μήνυμα σε οποιαδήποτε συνομιλία στο Telegram, πρέπει να καθορίσετε το διακριτικό bot και το αναγνωριστικό του χρήστη-στόχου (ή συνομιλίας):

$tg_token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$tg_chat_id="987654321"

Απαιτείται το πρωτόκολλο TLS 1.2 για τη σύνδεση στο Telegram API. Βεβαιωθείτε ότι η έκδοση πρωτοκόλλου TLS 1.2 είναι ενεργοποιημένη στα Windows. Από προεπιλογή, το PowerShell χρησιμοποιεί τα πρωτόκολλα παλαιού τύπου SSL 3.0, TLS 1.0 ή TLS 1.1 για συνδέσεις. Εκτελέστε την ακόλουθη εντολή για να χρησιμοποιήσετε το TLS έκδοση 1.2 στην τρέχουσα περίοδο λειτουργίας PowerShell

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Και εδώ είναι μια εντολή για να στείλετε ένα μήνυμα στο Telegram:

$message="Test message alert from PowerShell"
$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)&text=$($Message)"

Μόλις εκτελέσετε αυτό, θα πρέπει να λάβετε ένα μήνυμα από το bot.

Μπορείτε να χρησιμοποιήσετε τη μορφοποίηση κειμένου emoji και HTML για να κάνετε τις ειδοποιήσεις πιο ελκυστικές και ευανάγνωστες:

$message= $currend_data + "⚠️ Update Script <b>SAP_DB_Update</b> completed with errors"
$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)&text=$($Message)&parse_mode=html"

Για να εργαστείτε με σενάρια PowerShell, προτείνω να χρησιμοποιήσετε το πρόγραμμα επεξεργασίας κώδικα VS.

Μάθετε περισσότερα:Προγραμματιστής εργασιών για εκτέλεση ειδοποιήσεων σεναρίου και ηλεκτρονικού ταχυδρομείου PowerShell

Εάν έχετε πρόσβαση στο Διαδίκτυο μέσω διακομιστή μεσολάβησης, μπορείτε να χρησιμοποιήσετε το-Proxyπαράμετρος του cmdlet Invoke-WebRequest για να καθορίσετε τις ρυθμίσεις διακομιστή μεσολάβησης. Χρησιμοποιήστε το-ProxyCredentialόρισμα για έλεγχο ταυτότητας σε διακομιστή μεσολάβησης.

$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid)&text=$($Message)" –Proxy "https://192.168.13.155:3128"

Στην έκδοση PowerShell Core 7.x+, το cmdlet Invoke-WebRequest χρησιμοποιεί τις ρυθμίσεις διακομιστή μεσολάβησης που καθορίζονται στις μεταβλητές περιβάλλοντος. Μάθετε περισσότερα σχετικά με τη χρήση διακομιστή μεσολάβησης στο PowerShell.

[/συναγερμός]

Μπορείτε να δημιουργήσετε μια συνάρτηση από μια δέσμη ενεργειών που στέλνει ένα μήνυμα στο Telegram και να την προσθέσετε στο αρχείο προφίλ PowerShell στα Windows:

function Send-Telegram {
        [CmdletBinding()]
        param(
            [Parameter()]
            [string] $Message
        )    
        $tg_token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        $tg_chat_id="987654321"
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
        $Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)&text=$($Message)&parse_mode=html" 
        return $Response    
 }

Ανοίξτε ένα αρχείο κειμένου με προφίλ PowerShell που εφαρμόζεται αυτόματα όταν ξεκινά το powershell.exe/pwsh.exe:

notepad $PSHOMEProfile.ps1

Είναι πλέον δυνατή η αποστολή μηνύματος σε ένα κανάλι Telegram από οποιοδήποτε σενάριο PowerShell.

Send-Telegram "My test message"

Εάν χρησιμοποιείτε το Teams ως τον κύριο αγγελιοφόρο σας, μπορείτε επίσης να χρησιμοποιήσετε το PowerShell για να στείλετε ένα μήνυμα σε ένα κανάλι του Teams.

Related Posts