PowerShell: отправка сообщений в Telegram

Мессенджер Telegram можно использовать как средство мгновенного оповещения о различных событиях в инфраструктуре, результатах выполнения скриптов или заданий планировщика. В этой статье мы покажем, как отправить текстовое уведомление в канал или группу Telegram с помощью PowerShell через API бота.

Сначала нужно создать новый бот в Telegram с помощью @BotFather . Найдите этого бота в клиенте Telegram и отправьте ему команды:
/start
/newbot

Укажите название бота и имя пользователя. BotFather сгенерирует для вам HTTP токен, который нужно скопировать и сохранить.

Для оправки уведомления в чат Telegram или конкретному пользователю нужно получить его ID. В данном случае я будут отправлять уведомления себе, поэтому с помощью @my_id_bot я получу свой ID:

/start

Your user ID: 987654321

Для отправки сообщения в Telegram нужно указать токен бота и имя вашего пользователя (группы):

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

Для подключения к API Telegram нужно обязательно использовать протокол TLS 1.2. Убедитесь, что TLS 1.2 включен в вашей операционной системе Windows . PowerShell по умолчанию может использовать для подключения устаревшие протоколы SSL 3.0, TLS 1.0, или TLS 1.1. Чтобы использовать TLS 1.2 в текущей сессии, выполните команду:

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

Чтобы отправить сообщение в Telegram, выполните команду:

$message="Тестовое сообщение в Telegram из PowerShell"
$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid)&text=$($Message)"

Вы должны получить сообщение от бота.

Чтобы сделать уведомления более наглядными и красочными, можно использовать символы emoji и HTML форматирование:

$message= $currend_data + "⚠️ Скрипт обновления <b>Update1C</b> завершен с ошибками"
$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)&text=$($Message)&parse_mode=html"

Если в вашей сети доступ в интернет выполняется через прокси сервер, вы можете указать есть с помощью параметра -Proxy командлета Invoke-WebRequest . Для аутентификации на прокси можно использовать аргумент -ProxyCredential .

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

В PowerShell 7.x командлет Invoke-WebRequest использует настройки прокси, заданные в переменных окружения. Подробнее об использовании прокси в PowerShell .

Скрипт отправки сообщения в телеграм можно оформить в функцию и добавить ее в файл профиля PowerShell в Windows:

_x000D_ function Send-Telegram {_x000D_ [CmdletBinding()]_x000D_ param(_x000D_ [Parameter()]_x000D_ [string] $Message_x000D_ ) _x000D_ $tg_token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"_x000D_ $tg_chat_id="987654321"_x000D_ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12_x000D_ $Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($tg_token)/sendMessage?chat_id=$($tg_chat_id)&text=$($Message)&parse_mode=html" _x000D_ return $Response _x000D_ }_x000D_
Чтобы открыть текстовый файл с профилем PowerShell , который автоматически применяется при запуске процесса powershell.exe/pwsh.exe, выполните команду:

notepad $PSHOMEProfile.ps1

Теперь вы можете использовать функцию отправки сообщения в канал Telegram из любого скрипта PowerShell. Достаточно выполнить команду:

Send-Telegram  "My test message"

Если в качестве основного вы используете Teams, мы также можете отправлять сообщения в канал Teams с помощью PowerShell .
admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

3 дня ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

3 дня ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

3 дня ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

3 дня ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

3 дня ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

3 дня ago