Skylear
28-10-2020, 18:14
Добрый день коллеги. Имеем не совсем стандартную задачу, помогите разобраться. Есть программа (конкретно RdpGuard 6.7). Там есть функция уведомления. Нужно заставить приходить уведомления в телеграм.
модель работы такая:
в программе происходит вызов bat, ниже написаны аргументы (самой программы) типа ip-blocked %IP% %USER% %PROTOCOL%. вот именно эти аргументы нужно передать в PS1 скрипт
содержание батника такое:
powershell -file D:\Telegram\ps2s.ps1
содержание скрипта ps такое:
param(
[string]$chat_id = $("-XXXXXXXXXX"),
[string]$text = $("ip-blocked %IP% %USER% %PROTOCOL%"),
[switch]$markdown,
[switch]$nopreview
)
$token = "XXXXXXXXX:99999999999XXXXXXXXXXXXXX00000000000"
if($nopreview) { $preview_mode = "True" }
if($markdown) { $markdown_mode = "Markdown" } else {$markdown_mode = ""}
$payload = @{
"chat_id" = $chat_id;
"text" = $text
"parse_mode" = $markdown_mode;
"disable_web_page_preview" = $preview_mode;
}
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
Invoke-WebRequest `
-Uri ("https://api.telegram.org/bot{0}/sendMessage" -f $token) `
-Method Post `
-ContentType "application/json;charset=utf-8" `
-Body (ConvertTo-Json -Compress -InputObject $payload)
В итоге программа срабатывает, но в телеграм прилетает сообщение просто со словами:
ip-blocked %IP% %USER% %PROTOCOL%
переменные не отрабатывают.
подскажите как реализовать
модель работы такая:
в программе происходит вызов bat, ниже написаны аргументы (самой программы) типа ip-blocked %IP% %USER% %PROTOCOL%. вот именно эти аргументы нужно передать в PS1 скрипт
содержание батника такое:
powershell -file D:\Telegram\ps2s.ps1
содержание скрипта ps такое:
param(
[string]$chat_id = $("-XXXXXXXXXX"),
[string]$text = $("ip-blocked %IP% %USER% %PROTOCOL%"),
[switch]$markdown,
[switch]$nopreview
)
$token = "XXXXXXXXX:99999999999XXXXXXXXXXXXXX00000000000"
if($nopreview) { $preview_mode = "True" }
if($markdown) { $markdown_mode = "Markdown" } else {$markdown_mode = ""}
$payload = @{
"chat_id" = $chat_id;
"text" = $text
"parse_mode" = $markdown_mode;
"disable_web_page_preview" = $preview_mode;
}
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
Invoke-WebRequest `
-Uri ("https://api.telegram.org/bot{0}/sendMessage" -f $token) `
-Method Post `
-ContentType "application/json;charset=utf-8" `
-Body (ConvertTo-Json -Compress -InputObject $payload)
В итоге программа срабатывает, но в телеграм прилетает сообщение просто со словами:
ip-blocked %IP% %USER% %PROTOCOL%
переменные не отрабатывают.
подскажите как реализовать