Оповещение сотрудников

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

Сообщение при каждой загрузке

Для этого требуется в файл /usr/local/samba/lib/netlogon/all.bat написать строчку вызывающую файл скрипта сообщения по сети, например так:

start \\mysmbserver\netlogon\bd.vbs

Скрипт выводящий сообщение может выглядеть так:

 MsgBox "Открылся внутрикорпоративный web-ресурс.", 64, "Внимание!"

Редактировать скрипты необходимо под windiws.

Однократное сообщение

Для этого необходимо использовать несколько скриптов:

  • /home/samba/technical/messages/message.bat - скрипт для windows, вызывающий скрипт с сообщением, самоудаляется после запуска
  • /home/samba/technical/messages/make_bat.sh - скрипт, для копирования message.bat в домашние директории пользователей
  • /home/samba/technical/messages/clear.bat - скрипт, удаляющий message.bat из домашних директорий пользователей
  • /usr/local/samba/lib/netlogon/messages/cron.wsf - скрипт, запускаемый на компьютере пользователя при загрузке и выполняемый в скрытом режиме до перезагрузки, скрипт каждые 10 минут пытается запустить файл h:\message.bat
  • /usr/local/samba/lib/netlogon/messages/message.vbs - скрипт, выводящий требуемое сообщение у пользователя.


message.bat:

start \\mysmbserver\netlogon\messages\message.vbs
del /Q /F h:\message.bat
del h:\message.bat

Запускает скрипт message.vbs, а затем сам себя удаляет, две строчки del для того, что бы удаляла не только в win2k и выше, но и в win98.

make_bat.sh:

ls -la /home | awk '/^d/ {print $9}' \
| awk '/(^\.)|(^db$)|(^tmp$)|(^rm-it$)|(^old$)|(^samba)|(^usr$)|(^hosting$)|(^media$)/ {next}; {system("/bin/cp /home/samba/technical/messages/message.bat /home/"$1"/message.bat")}; {system("/usr/sbin/chown "$1" /home/"$1"/message.bat")}'

Скрипт переберает файлы в папке /home, находит в них папки, исключает исключает папки начинающиеся с ".", а так же папки db, tmp, rm-it, ..., media - все папки не являющиеся home-dir-ами. Затем копирует файл /home/samba/technical/messages/message.bat в каждую из оставшихся папках, и устанавливает хозяином скопированного файла message.bat пользователя имя которого совпадает с именем папки.

clear.bat:

ls -la /home | awk '/^d/ {print $9}' \
| awk '/(^\.)|(^db$)|(^tmp$)|(^rm-it$)|(^old$)|(^samba)|(^usr$)|(^hosting$)|(^media$)/ {next}; {system("/bin/rm /home/"$1"/message.bat")};'

Скрипт получился из make_bat.sh.

cron.wsf:

<?xml version="1.0" encoding="windows-1250"?>
<job id="MR_MailRobot">
<script language="VBScript">
<![CDATA[
  On Error Resume Next
  set WshShell=WScript.CreateObject("WScript.Shell")
  do while x=0
    WshShell.run "h:\message.bat",0
    WScript.Sleep 600000
  Loop
]]>
</script>
</job>

Читайте где нибудь, например на www.xakep.ru

message.vbs:

MsgBox "Тестовое сообщение", 64, "Test"

Цифра, определяет каким будет окно:

  • 0 - без значков
  • 16 - белый крест, в красном круге
  • 32 - знак вопроса
  • 48 - восклицательный знак в желтом треугольнике
  • 64 - знак "i"