Сервер в кармане, или просто о сложном!

главная - Статьи - Разное



Уведомления в Telegram о событии Windows

Дата обновления: 28.08.2021

Теги: Онлайн сервисы Безопасность Windows

Операционные системы почти на все, что в них происходит, генерируют события. Эти события можно использовать в своих целях. Например, сделать уведомление в Telegram о том, что был осуществлен вход в учетную запись или о чем-то другом.

Для примера сделаем уведомление в Telegram о том, что произошла разблокировка учетной записи (например, вы отошли от компьютера, поставили на блок, а кто-то вошел в учетную запись).

Для этого нужно отправить GET-запрос боту Telegram в формате:
https://api.telegram.org/bot%TOKEN%/sendMessage?chat_id=%CHAT_ID%&text=%MESSAGE%
где:
%TOKEN% - это токен бота telegram
%CHAT_ID% - id чата, в который отправляется сообщение
%MESSAGE% - отправляемое сообщение

Считаем, что у нас есть токен бота и id чата Telegram. Если нет, бота надо создать и выяснить id чата с этим ботом.

 

Пример 1: отправляем уведомление с помощью браузера (например, Internet Explorer)

1. Создаем задачу "Unblock message" в task-менеджере Windows:

Планировщик Windows: создаем задачу
2. Триггер (т.е. на какое событие будем реагировать): разблокирование рабочей станции:

Планировщик Windows: триггер - при разблокировании рабочей станции
3. Действие:
запуск программы "C:\Program Files\Internet Explorer\iexplore.exe"
с параметром вида: https://api.telegram.org/bot%TOKEN%/sendMessage?chat_id=%CHAT_ID%&text=%MESSAGE%
например: https://api.telegram.org/bot123456:GHGHGHGHGHGHGHG/sendMessage?chat_id=44444444&text=Unblock
(замените параметры на свои, в примере все вымышлено, понятное дело).

Планировщик Windows: запуск браузера
4. В условяих снимите галочку "Запускать только при питании от электросети".

Планировщик Windows: дополнительные параметры

Ок.

Проверяем. Win + L, входим снова в свою учетную запись. Должно прийти уведомление в Telegram.

Но при этом будет видно, что был запущен браузер, может остаться сообщение с предложением скачать файл:

После запуска уведомления в Telegram остается открытое окно загрузок

В любом случае, задача должна отработать и уведомление в Telegram должно прийти.

 

Пример 2: отправляем уведомление с помощью CMD/BAT

Готовим CMD/BAT-скрипт:

@echo off
chcp 65001
set root=C:\Users\user1\Telegram
cd %root%

set token="123456:GHGHGHGHGHGHGHG"
set chat_id="44444444"
set MESSAGE=Unblock computer  (%date% %time%)
curl --insecure --data chat_id=%chat_id% --data-urlencode "text='%MESSAGE%'"  "https://api.telegram.org/bot%token%/sendMessage"

и сохраняем его как C:\Users\user1\Telegram\telegram_notice.cmd

Для запуска нужна утилита curl.exe, которую надо положить в ту же директорию.
Скачать можно, например, отсюда: https://curl.se/windows/
В моем случае это был архив curl-7.78.0_2-win64-mingw.zip, из директории bin которого взял все 4 файла:

  • curl.exe
  • curl-ca-bundle.crt
  • libcurl-x64.def
  • libcurl-x64.dll

Также понадобилась библиотека:

  • libintl3.dll (http://gnuwin32.sourceforge.net/packages/libiconv.htm).

Все нужные файлики сложить в одну директорию (в примере: C:\Users\user1\Telegram\).

 

Пробуем выполнить telegram_notice.cmd. Должно прийти уведомление в телеграм. Если пришло, создаем задачу, аналогично первой:

1. Создаем задачу "Unblock message" в task-менеджере Windows:
2. Триггер (т.е. на какое событие будем реагировать): разблокирование рабочей станции/
3. Действие:
запуск cmd/bat-файла

Уведомление в Telegram с помощью cmd/bat

4. В условяих снимите галочку "Запускать только при питании от электросети".

Проверяем.
Есть нюанс: все равно при запуске задачи мелькает черное окно cmd. Видно, что что-то было запущено (хотя может это и не всегда плохо).

 

Пример 3: скрытно отправляем уведомление с помощью CMD/BAT

Все то же самое, но нужна утилита от NirSoft: nircmd.exe

Пример запуска:
C:\Users\user1\Telegram\nircmd.exe exec hide telegram_notice.cmd
где параметр hide указывает подавлять отображение команды.

Соответственно, задача Windows меняется:

Скрытное уведомление в Telegram с помощью nircmd

Обратите внимание на то, что может потребоваться указать рабочую директорию. Без этого последний вариант задания не выполнялся из планировщика заданий Windows. Из окна cmd все ок, из планировщика - нет.

 

Отладка

Если что-то не выходит, сначала пробуйте открыть cmd.exe и выполнять скрипты из командной строки. Если из командной строки не выходит, то и задание явно не заработает.

 

Вот и все. Удачи!



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?