Оповещение сотрудников
Содержание
Сообщение при каждой загрузке
Для этого требуется в файл /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"