Отправка сообщений из MS SQL Server в Telegram с использованием PowerShell

26.11.20

Интеграция - Мессенджеры и боты

Пример отправки логов  из MS Sql Server с использованием бота Telegram и PowerShell.

Предлагается очередной небольшой пример велосипеда для отправки логов  из MS Sql Server с использованием бота Telegram. Телеграмм для меня оказался очень удобным средством получения отчета о размере свободного места на дисках, гораздо удобнее электронной почты.

На infostart  уже есть большое количество решений для отправки сообщений в Telegram из 1С.  Но, мне не хотелось использовать  1С для такой задачи. Требования были просты – отправка сообщения о размере свободного пространства на локальных дисках по расписанию. Были варианты написания  программы на с или java, но  было решено пойти по самому простому пути – с помощью задания MS SQL Server. Делать почти ничего не нужно – только нажимай на кнопки мыши. Единственно, что необходимо придумать, - текст команды. Решено было сделать это с использованием PowerShell.

 

Текст скрипта:

#################################################################

$token = "128582948x:AAFN3xYJAxdxxxl-xxF_xxM8xt8NZFK4x5x"    

$chat_id = "123456789"                                                                                            

$text = ""

 

get-wmiobject win32_volume | ? { $_.DriveType -eq 3 -and $_.driveletter} | Sort-Object -Property Name |ForEach-Object {

      $text = $text + $_.Name+" %:"+[math]::round($_.FreeSpace/$_.Capacity*100,2)+ " abs: "+[math]::round($_.FreeSpace/1Tb,2)+"`n"

    }

 $URI = "https://api.telegram.org/bot" + $token + "/sendMessage?chat_id=" + $chat_id + "&text=" + $text

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

Invoke-WebRequest -URI ($URI) –UseBasicParsing

###############################################################

Пояснения:

$token     – ключ бота-отправителя Telegram, получаем при создании бота из @BotFather;

$chat_id  -  идентификатор получателя Telegram,  адресат может узнать свой  идентификатор  из @chat_id_echo_bot;

$text = "" -  результирующая строка для отправки;

get-wmiobject win32_volume – получаем информацию о логических устройствах ;

| ? { $_.DriveType -eq 3 -and $_.driveletter}  - отбираем только жесткие диски, игнорируем USB и CDROMы;

| Sort-Object -Property Name                          -  сортируем  ;

|ForEach-Object {                                               - обходим массив дисков и информацию о каждом присоединяем к строке для отправки, где:

 $_.Name                                                               – имя логического диска

[math]::round($_.FreeSpace/$_.Capacity*100,2) – процент свободного места на диске ; [math]::round($_.FreeSpace/1Tb,2)           - размер свободного места на диске в Тб;

 "`n"                                                                        - перенос строки

 

Получаем примерно следующее сообщение:

«C:\% 78.38 abs 2.37

D:\% 49.60 abs 4.65

E:\% 21.54  abs12.33»

Далее отправляем сообщение:

Формируем запрос:

$URI = "https://api.telegram.org/bot" + $token + "/sendMessage?chat_id=" + $chat_id + "&text=" + $text

Устанавливаем протокол:

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

Отправка запроса:

Invoke-WebRequest -URI ($URI) –UseBasicParsing

Вступайте в нашу телеграмм-группу Инфостарт

PowerShell Telegram Администрирование

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! 50%

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, MAX, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

6100 3050 руб.

07.04.2014    98871    90    205    

173

Мессенджеры и боты 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджеров Max, WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi. Важно: Интеграция с Telegram пока только для конфигурации 1С:УНФ.

30500 руб.

23.06.2023    18354    60    27    

62

Мессенджеры и боты 1С 8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Готовый чат-бот MAX для 1С виде расширения. Клиенты проверяют остатки и заказы прямо в мессенджере. Ролевая модель, гибкое меню, отправка файлов, диалоги. Подключайте свою логику через внешние обработки.

14640 руб.

26.03.2026    3240    4    0    

7

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram/max, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    43459    58    62    

88

Логистика, склад и ТМЦ Интеграция Роли и права Мессенджеры и боты Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Готовое решение для 1С:УТ 11.5 и 1С:УНФ 3.0, которое дает менеджерам, торговым представителям и руководителям быстрый доступ к остаткам, ценам и данным по номенклатуре прямо в MAX и Telegram. Поиск по наименованию, артикулу, коду и штрихкоду, избранное, персональные настройки складов и видов цен для каждого пользователя. База 1С не обязательно должна публиковаться в открытый интернет для конечных пользователей: решение может работать во внутреннем контуре компании через опубликованный HTTP-сервис 1С и отдельную серверную часть бота. Экономичная альтернатива отдельному мобильному приложению для отдела продаж: быстрее запуск, ниже затраты, меньше ручных уточнений между менеджером, складом и офисом. По запросу доступны демонстрация, проверка совместимости и обсуждение адаптации под ваши процессы.

5978 руб.

10.03.2026    1290    1    0    

2

Нейросети Мессенджеры и боты Разработчик Абонемент ($m)

Задача - дать пользователю AI-ассистента, привязанного к его данным в базе 1С. Не абстрактный чат-бот, а помощник, который знает структуру вашей конфигурации, понимает названия справочников и документов на русском языке и может вернуть конкретные данные - список контрагентов, сумму реализаций, количество сотрудников.

1 стартмани

07.05.2026    2097    6    gybson    5    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 09.12.20 21:45
(0) Хорошо придумали.

+
2. user1503726 09.12.20 21:54 Сейчас в теме
Спасибо. Очень полезный инструмент.
3. wrooom 298 08.11.21 00:36 Сейчас в теме
Подскажите, куда нажать в Mangement studio ?
4. wrooom 298 08.11.21 13:36 Сейчас в теме
Вот как получить это окошко, которое вначале статьи?
5. ivv1970 30 09.11.21 22:11 Сейчас в теме
(4) Агент Sql Server - Задания - Создать задание - Шаги - Создать.
6. ivv1970 30 09.11.21 22:16 Сейчас в теме
(4) Естественно, для того, чтобы сообщение регулярно оправлялось, в задании необходимо настроить и расписание.)))
7. wrooom 298 09.11.21 22:34 Сейчас в теме
Просто в powershell выдает ошибку:

Invoke-WebRequest : {"ok":false,"error_code":400,"description":"Bad Request: chat not found"}
строка:19 знак:1
+ Invoke-WebRequest -URI ($URI) –UseBasicParsing
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
8. wrooom 298 09.11.21 23:07 Сейчас в теме
Спасибо. С другим ботом все работает. С новым буду разбираться.
9. wrooom 298 12.11.21 02:35 Сейчас в теме
(8) Новому боту в телеграм забыл разрешить писать сообщения ( не нажал на кнопку "запустить" )
Для отправки сообщения требуется регистрация/авторизация