Как настроить отправку вывода команды в Telegram?
$token = «*******» $chat_id = «********» $text = Search-ADAccount -LockedOut | Select Name,SamAccountName $URI = «https://api.telegram.org/bot» + $token + «/sendMessage?chat_id=» + $chat_id + «&text spoiler»>spoiler
Invoke-WebRequest : <"ok":false,"error_code":400,"description":"Bad Request: message text is empty">
At line:16 char:12
+ $Request = Invoke-WebRequest -URI ($URI)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
"ok":false,"error_code":400,"description":"Bad>
Пробовал записать заблокированных пользователей в csv файл и отправить его, но файл даже не заполняется. Использовал: Search-ADAccount -LockedOut | Select Name,SamAccountName | Export-Csv C:\temp\1.csv Get-content -Path C:\temp\1.csv
- Вопрос задан более года назад
- 155 просмотров
1 комментарий
Средний 1 комментарий
Как настроить отправку вывода команды в Telegram?
$token = «*******» $chat_id = «********» $text = Search-ADAccount -LockedOut | Select Name,SamAccountName $URI = «https://api.telegram.org/bot» + $token + «/sendMessage?chat_id=» + $chat_id + «&text spoiler»>spoiler
Invoke-WebRequest : <"ok":false,"error_code":400,"description":"Bad Request: message text is empty">
At line:16 char:12
+ $Request = Invoke-WebRequest -URI ($URI)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
"ok":false,"error_code":400,"description":"Bad>
Пробовал записать заблокированных пользователей в csv файл и отправить его, но файл даже не заполняется. Использовал: Search-ADAccount -LockedOut | Select Name,SamAccountName | Export-Csv C:\temp\1.csv Get-content -Path C:\temp\1.csv
- Вопрос задан более года назад
- 155 просмотров
1 комментарий
Средний 1 комментарий
Как отправить сообщение в Telegram из PowerShell
Уведомления, получаемые от систем мониторинга, стали неотъемлемой частью специалистов занимающихся сопровождением информационных систем. Однако, мир не стоит на месте и все чаще появляются новые способы оповещения. К традиционным средствам оповещения о состоянии информационных систем: электронная почта и SMS добавились новые средства доставки уведомлений, такие как мессенджеры. Наибольшей популярностью, для этой цели, у системных администраторов стал мессенджер Telegram. А в системах мониторинга появилась возможность настраивать интеграцию с мессенджерами, с целью оперативной рассылки уведомлений.
Но что делать если централизованной системы мониторинга нет, или в ней нет особой необходимости, а потребность получать уведомления в Telegram есть.
Ниже описан один из способов пошаговой настройки для отправки сообщений в Telegram используя PowerShell.
- используя свой аккаунт Telegram написать специальному служебному боту @BotFather команду «/Start» или любое сообщение — в ответ придет список доступных команд.
- отправить команду /newbot — и ввести уникальное название бота, а затем идентификатор, который обязательно должен заканчиваться символами «bot».
Допустим наш бот будет называться UserMan.ru и иметь идентификатор UserManRu_bot.
В ответ придет уникальный token для созданного бота, который будет использоваться при отправке сообщений.
Например боту UserManRu_bot был присвоен токен: 819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g
2. Создать группу в Telegram и получить ее идентификатор
Для получения идентификатора группы необходимо создать новую группу в Telegram (или использовать имеющуюся группу) и добавить туда созданного бота UserManRu_bot. А для получения идентификатор учетной записи следует отправить боту UserManRu_bot сообщение /Start и любое тестовое сообщение.
Затем необходимо проверить историю обращений которые были к боту, используя запрос ниже:
https://api.telegram.org/bot/getUpdates
В случае с ботом UserManRu_bot это будет:
https://api.telegram.org/bot819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g/getUpdates
В результате мы увидим уникальный идентификатор пользователя (наш идентификатор), он нам понадобится при отправке сообщений
А также уникальный идентификатор группы
<"ok":true,"result":[<"update_id":146972760, "message":<"message_id":2,"from":172489755,"is_bot":false,"first_name":"Test","last_name":"Test","username":"mynick","language_code":"en">,"chat":,"date":1553259454,"text":"Test">>,,"chat":-347310642,"title":"UserMan.ru","type":"group","all_members_are_administrators":true>,"date":1553257968,"group_chat_created":true>>]>
Из этого набора символов в формате JSON определяем ID пользователя, который отправил сообщение «Test»: 172489755
и Id группы в которую добавили бота: -347310642
- token — Уникальный идентификатор, который был получен при создании бота
- chat_id — уникальный идентификатор пользователя или группы. Он определяется запросом getUpdates
- text — текст сообщения, которое необходимо направить
https://api.telegram.org/bot/sendMessage?chat_id=&text=
Например, отправка сообщения Hello в группу с идентификатором -347310642 от имени бота UserManRu_bot будет выглядеть так:
https://api.telegram.org/bot819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g/sendMessage?chat_id=-347310642&text=Hello
Вставляем этот запрос в адресную строку браузера и переходим по ссылке. Сообщение Hello должно прийти сообщение в группу.
4. Сформировать скрипт для отправки сообщения
Чтобы сформировать и выполнить Web запрос выше, используя PowerShell, потребуется небольшой скрипт. Пример скрипта показан ниже:
$token = "819090298:AAGjXP6QLPMkem9t2LflIHOAiE_Q58bA43g" $chat_id = "-347310642" $text = "Hello World!" $URI = "https://api.telegram.org/bot" + $token + "/sendMessage?chat_id=" + $chat_id + "&text quote">ID чата всегда начинается со знака минус, а ID пользователя всегда без знака минус














