Перейти к содержимому


Фото
- - - - -

Скрипты, пользовательские процедуры

скрипт процедура lua

  • Please log in to reply
20 ответов в этой теме

#1 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 28 Июль 2022 - 16:07

Добрый день. Очень начинающий пользователь Dr Web. В организации есть куча станций с dr web и сервер, управляющий ими. Сразу пример. Есть пользовательская процедура заблокированного устройства на станции, допустим я хочу отправлять автоматическое сообщение (из шаблонов сообщений к примеру) пользователю станции, когда он включает устройство и оно блокируется, вызывая соответствующую процедуру. Это возможно? Если да, то можно ли где то найти примеры скриптов для похожих задач (не нашел примеры скриптов для процедур dr web ), что бы не изучать lua с нуля. Спасибо большое и извиняюсь за нубский вопрос



#2 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 28 Июль 2022 - 16:50

Отправлять сообщение той же станции, на которой устройство заблокировано?


Семь раз отрежь – один раз проверь

#3 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 28 Июль 2022 - 16:53

Отправлять сообщение той же станции, на которой устройство заблокировано?

да, отправлять автоматически на ту же станцию, где произошло событие блокирования устройства



#4 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 28 Июль 2022 - 18:15

Хм, а агент балун не умеет показывать при этом? Мне казалось, там на каждый чих есть балун, разве что оно может быть выключено.

 

Вообще можно отправить из хука, только не то, что в шаблонах оповещений, а то, что уходит по кнопке "отправить сообщение на станцию".


Семь раз отрежь – один раз проверь

#5 B.Chugunov

B.Chugunov

    Advanced Member

  • Dr.Web Staff
  • 574 Сообщений:

Отправлено 29 Июль 2022 - 02:14

В важных уведомлениях есть балун. Отображение важных уведомлений(в ES важные оповещения) включены по дефолту.  
https://cdn-download.drweb.com/pub/drweb/windows/workstation/12.0/documentation/html/ss/ru/settings_notifications.html
Но текст не кастомизируется конечно, захардкожен. 

Т.е. если цель просто уведомить юзера, то без проблем, он и так должен уведомляться. Если нужна кастомизация, то хуки, но я затрудняюсь ответить, как это вместе собрать. 

Вообще можно отправить из хука, только не то, что в шаблонах оповещений, а то, что уходит по кнопке "отправить сообщение на станцию".

Это вряд ли тянет на автоматизацию, если мы конечно говорим про автоматическую отправку таких сообщений юзеру при блокировке.
Это как раз наверное надо собирать из хука  "Устройство заблокировано" в пользовательских процедурах, но надо понять, как отправку сообщения станции туда прикрутить и можно ли это вообще сделать. Надо под капот лезть. 
 
-----------------
best regards,
Technical support department, Doctor Web, Ltd.

#6 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 29 Июль 2022 - 09:55

 

В важных уведомлениях есть балун. Отображение важных уведомлений(в ES важные оповещения) включены по дефолту.  
https://cdn-download.drweb.com/pub/drweb/windows/workstation/12.0/documentation/html/ss/ru/settings_notifications.html
Но текст не кастомизируется конечно, захардкожен. 

Т.е. если цель просто уведомить юзера, то без проблем, он и так должен уведомляться. Если нужна кастомизация, то хуки, но я затрудняюсь ответить, как это вместе собрать. 

 

Вообще можно отправить из хука, только не то, что в шаблонах оповещений, а то, что уходит по кнопке "отправить сообщение на станцию".

Это вряд ли тянет на автоматизацию, если мы конечно говорим про автоматическую отправку таких сообщений юзеру при блокировке.
Это как раз наверное надо собирать из хука  "Устройство заблокировано" в пользовательских процедурах, но надо понять, как отправку сообщения станции туда прикрутить и можно ли это вообще сделать. Надо под капот лезть. 
 

 

Видно задача совсем не тривиальная, как я думал. Что же, усилия не стоят результата. Цель просто уведомлять пользователей, что им выдано предупреждение за нарушение (кастом текстом), а не показывать уведомление что устройство заблокировано. Вместо звонков, хотелось настроить автоматические сообщения посредством dr web. Наверное тему можно закрывать)



#7 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 29 Июль 2022 - 09:58


Вообще можно отправить из хука, только не то, что в шаблонах оповещений, а то, что уходит по кнопке "отправить сообщение на станцию".

Это вряд ли тянет на автоматизацию, если мы конечно говорим про автоматическую отправку таких сообщений юзеру при блокировке.
Это как раз наверное надо собирать из хука  "Устройство заблокировано" в пользовательских процедурах, но надо понять, как отправку сообщения станции туда прикрутить и можно ли это вообще сделать. Надо под капот лезть.

Так речь именно про то, что эти сообщения с кастомным текстом можно отправлять из хука. Само собой, я говорю с учётом знания того, что находится под капотом.


Семь раз отрежь – один раз проверь

#8 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 29 Июль 2022 - 10:03

Видно задача совсем не тривиальная, как я думал.

Да нет, в общем-то тривиальная.

local args = ...
drwcs.send_message_to_stations( { args.id },
                                "logo url", -- may be empty
                                "logo text", -- may be empty
                                "logo file image in bas64", -- may be empty
                                "link url", -- may be empty
                                "link text", -- may be empty
                                "Сообщение, которое нужно показать юзеру",
                                options, -- значения в db_admin_msg_options
                                3,
                                "c9687f73-d21d-b211-a797-85419c46f0e6" )

--[[
db_admin_msg_options = {
  db_admin_msg_options_none = 0,
  db_admin_msg_options_flag_logo = 1,
  db_admin_msg_options_flag_link = 2,
  db_admin_msg_options_flag_transparency = 4,
  db_admin_msg_options_flag_online_only = 8,
  db_admin_msg_options_flag_show_send_station = 16
}
]]

 


Семь раз отрежь – один раз проверь

#9 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 29 Июль 2022 - 10:54

 

Видно задача совсем не тривиальная, как я думал.

Да нет, в общем-то тривиальная.

local args = ...
drwcs.send_message_to_stations( { args.id },
                                "logo url", -- may be empty
                                "logo text", -- may be empty
                                "logo file image in bas64", -- may be empty
                                "link url", -- may be empty
                                "link text", -- may be empty
                                "Сообщение, которое нужно показать юзеру",
                                options, -- значения в db_admin_msg_options
                                3,
                                "c9687f73-d21d-b211-a797-85419c46f0e6" )

--[[
db_admin_msg_options = {
  db_admin_msg_options_none = 0,
  db_admin_msg_options_flag_logo = 1,
  db_admin_msg_options_flag_link = 2,
  db_admin_msg_options_flag_transparency = 4,
  db_admin_msg_options_flag_online_only = 8,
  db_admin_msg_options_flag_show_send_station = 16
}
]]

 

О, спасибо. Это работает только для процедуры заблокированного устройства или этот шаблон можно применить к другим процедурам?


Сообщение было изменено Merc: 29 Июль 2022 - 10:57


#10 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 29 Июль 2022 - 11:04

О, спасибо. Это работает только для процедуры заблокированного устройства или этот шаблон можно применить к другим процедурам?

В любом будет работать, где есть id станции и где доступна БД.

Ну и остальные доступные аргументы везде будут отличаться.


Семь раз отрежь – один раз проверь

#11 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 29 Июль 2022 - 11:22

 

О, спасибо. Это работает только для процедуры заблокированного устройства или этот шаблон можно применить к другим процедурам?

В любом будет работать, где есть id станции и где доступна БД.

Ну и остальные доступные аргументы везде будут отличаться.

 

Тестирую на процедуре Ошибка сканирования. Вставляю весь код при создании процедуры, однако после создания оно сохраняет только это 

local args = ...
drwcs.send_message_to_stations( { args.id },
"logo url", -- may be empty
"logo text", -- may be empty
"logo file image in bas64", -- may be empty
"link url", -- may be empty
"link text", -- may be empty
"Сообщение, которое нужно показать юзеру",
options, -- значения в db_admin_msg_options
3,
"c9687f73-d21d-b211-a797-85419c46f0e6" )

 

И ничего не работает, уведомлений нет, хотя ошибки сканирования на станции появляются. Я в скриптах ноль. Мне кажется дело в последнем значении

("c9687f73-d21d-b211-a797-85419c46f0e6" )

 

 ? Его нужно менять в зависимости от чего?



#12 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 29 Июль 2022 - 13:49

Я мысли читать не умею, что конкретно нужно получить, так что показал рыбу. Значения надо заполнить или наобормот убрать, в данном случае точно должно было зафейлиться на переменной options, которая отсутствует.


Семь раз отрежь – один раз проверь

#13 Merc

Merc

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 29 Июль 2022 - 14:30

Я мысли читать не умею, что конкретно нужно получить, так что показал рыбу. Значения надо заполнить или наобормот убрать, в данном случае точно должно было зафейлиться на переменной options, которая отсутствует.

 

--[[
db_admin_msg_options = {
db_admin_msg_options_none = 0,
db_admin_msg_options_flag_logo = 1,
db_admin_msg_options_flag_link = 2,
db_admin_msg_options_flag_transparency = 4,
db_admin_msg_options_flag_online_only = 8,
db_admin_msg_options_flag_show_send_station = 16
}
]]

 

Вот эта часть категорически не хочет сохраняться после создания процедуры, она просто пропадает.. Как и сказал в коде я не очень. Вставил весь ваш код в текст процедуры, но как уже сказал, вышепроцитированный участок не хочет сохраняться. Переменную options как указать? Не могли бы вы показать пример который просто можно вставить и он заработал, что бы я дальше уже сам разобрался как все работает и менял под себя, спасибо.



#14 Kirill Polubelov

Kirill Polubelov

    Hr. Schreibikus

  • Dr.Web Staff
  • 4 362 Сообщений:

Отправлено 29 Июль 2022 - 15:19

В Lua всё, что находится между символами --[[ и ]] считается комментарием. То есть, выполняться как-либо -- не будет. В какой-то версии был бажок, что комментарии в коде не сохранялись, во встроенном редакторе.


(exit 0)

#15 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 29 Июль 2022 - 16:03

Вот эта часть категорически не хочет сохраняться после создания процедуры, она просто пропадает.. Как и сказал в коде я не очень. Вставил весь ваш код в текст процедуры, но как уже сказал, вышепроцитированный участок не хочет сохраняться. Переменную options как указать? Не могли бы вы показать пример который просто можно вставить и он заработал, что бы я дальше уже сам разобрался как все работает и менял под себя, спасибо.

Да и пусть не сохраняется, она нужна для Вас, а не для интерпретатора.

options надо заменить на нужное число в соответствии с приведёнными значениями.


Семь раз отрежь – один раз проверь

#16 B.Chugunov

B.Chugunov

    Advanced Member

  • Dr.Web Staff
  • 574 Сообщений:

Отправлено 29 Июль 2022 - 22:10

Потыкал у себя для интереса. У меня пока получается только такое получить:
client detected protocol violation "command ADMINMESSAGE wants no more than 10 parameters instead of 14 received"
с последующим цикличным дисконнектом агента. 
Наверное неплохо было бы какой-то реально рабочий пример хука получить, по своему усмотрению, а не рыбу. 


-----------------
best regards,
Technical support department, Doctor Web, Ltd.

#17 Eugeny Gladkih

Eugeny Gladkih

    the Spirit of the Enlightenment

  • Dr.Web Staff
  • 5 295 Сообщений:

Отправлено 30 Июль 2022 - 14:56

Потыкал у себя для интереса. У меня пока получается только такое получить:
client detected protocol violation "command ADMINMESSAGE wants no more than 10 parameters instead of 14 received"
с последующим цикличным дисконнектом агента. 
Наверное неплохо было бы какой-то реально рабочий пример хука получить, по своему усмотрению, а не рыбу. 

 

все работает, только нужно понимать что делаешь:
"logo file image in bas64", -- may be empty

передать пустую строку тут



#18 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 30 Июль 2022 - 15:31

Лучше во всём, что не нужно, передать пустую строку.


Семь раз отрежь – один раз проверь

#19 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 858 Сообщений:

Отправлено 30 Июль 2022 - 15:34

Вот не рыба, а максимально обрезанное сообщение:

local args = ...
drwcs.send_message_to_stations( { args.id },
                                "", "", "", "", "",
                                "Сообщение, которое нужно показать юзеру",
                                0,
                                3,
                                "c9687f73-d21d-b211-a797-85419c46f0e6" )

Семь раз отрежь – один раз проверь

#20 B.Chugunov

B.Chugunov

    Advanced Member

  • Dr.Web Staff
  • 574 Сообщений:

Отправлено 31 Июль 2022 - 13:17

"logo file image in bas64", -- may be empty

передать пустую строку тут

 
Я думал это аргументы, которые должны быть сами по себе прописаны, но их можно не определять, поэтому оставлял как есть, только вместо options 0 проставил.

Вот не рыба, а максимально обрезанное сообщение:

thx, это пашет как надо.
-----------------
best regards,
Technical support department, Doctor Web, Ltd.



Also tagged with one or more of these keywords: скрипт процедура, lua

Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых