Уведомления в 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:
2. Триггер (т.е. на какое событие будем реагировать): разблокирование рабочей станции:
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
(замените параметры на свои, в примере все вымышлено, понятное дело).
4. В условяих снимите галочку "Запускать только при питании от электросети".
Ок.
Проверяем. Win + L, входим снова в свою учетную запись. Должно прийти уведомление в 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-файла
4. В условяих снимите галочку "Запускать только при питании от электросети".
Проверяем.
Есть нюанс: все равно при запуске задачи мелькает черное окно cmd. Видно, что что-то было запущено (хотя может это и не всегда плохо).
Пример 3: скрытно отправляем уведомление с помощью CMD/BAT
Все то же самое, но нужна утилита от NirSoft: nircmd.exe
Пример запуска:
C:\Users\user1\Telegram\nircmd.exe exec hide telegram_notice.cmd
где параметр hide
указывает подавлять отображение команды.
Соответственно, задача Windows меняется:
Обратите внимание на то, что может потребоваться указать рабочую директорию. Без этого последний вариант задания не выполнялся из планировщика заданий Windows. Из окна cmd все ок, из планировщика - нет.
Отладка
Если что-то не выходит, сначала пробуйте открыть cmd.exe и выполнять скрипты из командной строки. Если из командной строки не выходит, то и задание явно не заработает.
Вот и все. Удачи!
Авторизуйтесь для добавления комментариев!