Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - Проблема со скриптом VBS!

Ответить
Настройки темы
VBS/WSH/JS - Проблема со скриптом VBS!

Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Опишу тут суть проблемы, и что данный скрипт делает.

Данный скрипт запускается и сидит в памяти, и как только указанный файл открывается скрипт производит архивацию, и отсылает письмо пользователю, что файл был изменен, и скрипт опять просто весит в памяти, до следующей операции над файлом.

Но вот не задача, архивация не запускается, письмо отсылается и что самое обидное скрипт завершается. В чем может быть трабла. Проверялось на Win 2003 and XP.

Жду ваших комментариев. Вот ссылка где вы можите увидеть оригинал статьи - http://forum.script-coding.info/

HTML код: Выделить весь код
Set fs = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set f = fs.GetFile("D:\distrib\Panasonic\info.xls") x = f.DateLastModified While 1 If f.DateLastModified > x Then sendmail Set oExec = WshShell.Exec("C:\Program Files\WinRAR\rar.exe a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3 D:\info.rar D:\distrib\Panasonic\info.xls") x = f.DateLastModified End If WScript.Sleep 1000 Wend Sub sendmail Set objEmail = CreateObject("CDO.Message") objEmail.From = "от" objEmail.To = "кому" objEmail.Subject = "File was Modified" objEmail.Textbody = "File was Modified" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "учетка" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "сервер" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objEmail.Configuration.Fields.Update objEmail.Send WScript.Quit End sub


Отправлено: 16:18, 15-06-2007

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


voler
Цитата:
и что самое обидное скрипт завершается. В чем может быть трабла
убери "WScript.Quit" в конце процедуры
Цитата:
архивация не запускается
пробелы нужно заключать в кавычки, используй команду
Код: Выделить весь код
WshShell.Run("""C:\Program Files\WinRAR\rar.exe"" a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3 D:\info.rar D:\distrib\Panasonic\info.xls")

Отправлено: 13:11, 16-06-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Выкладываю рабочий скрипт! Внесите свои изменения, и пользуйтесь.

HTML код: Выделить весь код
'Скрипт для отправки сообщения пользователям и архивирования файла. 'Немного о настройках rar. 'Не должно быть пробелов, и русских шрифтов в названии файла. 'Запуск winrar для полной архивации 'Для корректной работы скрипта необходимо наличие Winrar-а в директории c:\Program Files\WinRAR\winrar.exe '************************************************************************************** 'Команда A — добавить в архив 'Ключ -SFX[имя ] — создать самораспаковывающийся архив 'Ключ -T — протестировать файлы после архивирования 'Ключ -M<n > — выбрать метод сжатия от 1 до 5 'Ключ -R — обрабатывать вложенные папки 'Ключ - y - Если указан этот ключ, то на все запросы будет автоматически даваться ответ "Да". 'Ключ -DH — открывать совместно используемые файлы 'Ключ -AG[формат ] — добавить к имени архива текущие дату и время формат DD-MMM-YY 'Ключ -EP3 — сохранять полные пути файлов, включая букву диска '************************************************************************************** Set fs = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set f = fs.GetFile("")' Тут указываем за чем следим? Т.е. файл или папку! x = f.DateLastModified While 1 If f.DateLastModified > x Then sendmail WshShell.Run("""C:\Program Files\WinRAR\WinRAR.exe"" a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3 С:\Имя архива и путь.rar C:\Указываем, что архивируем") ' Тут проводяться настройки архивирования. x = f.DateLastModified End If WScript.Sleep 1000 Wend Sub sendmail Set objEmail = CreateObject("CDO.Message") objEmail.From = "" 'Тут указываем от кого отправляются сообщения. objEmail.To = "" 'Список или одного получателя кому отправлять сообщения. Если список, то указываем через запятую. objEmail.Subject = "File was Modified, Файл был изменен!" 'Тема письма. objEmail.Textbody = "File was Modified, and server was created backup. Archive will keep 30 days, after it'll be delited!!! This is message, only inform you about somebody opened the ........." 'Само письмо! objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "" 'Учетная запись. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "" 'Пароль. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "" 'Сервер. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'Порт исходящего сервера. objEmail.Configuration.Fields.Update objEmail.Send 'WScript.Quit 'Эта строка должна быть закоменттрованна, для того чтобы скрипт не завершал работу. А ложился баюшки, до следующего открытия файла. End sub

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 09:42, 18-06-2007 | #3


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Решил кое, что подправить, но пишет ошибку файл не найден.
HTML код: Выделить весь код
Скрипт для отправки сообщения пользователям и архивирования файла. filePath = "D:\distrib\Panasonic\info.xls" archPath = "D:\distrib\Panasonic\info.rar" winRarPath = "C:\Program Files\WinRAR\WinRAR.exe" Set fs = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set f = fs.GetFile(filePath)' Тут указываем за чем следим? x = f.DateLastModified While 1 If f.DateLastModified > x Then sendmail RetCode = WshShell.Run ("""winRarPath & "" a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3" " & archPath & " " & filePath", 0, True) x = f.DateLastModified End If WScript.Sleep 1000 Wend

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 10:14, 19-06-2007 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


voler
с кавычками надо бы разобраться
Код: Выделить весь код
winRarPath = """C:\Program Files\WinRAR\WinRAR.exe"""
'...
WshShell.Run (winRarPath & " a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3 " & archPath & " " & filePath, 0, True)

Отправлено: 12:53, 19-06-2007 | #5


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


HTML код: Выделить весь код
'Скрипт для отправки сообщения пользователям и архивирования файла. filePath = "D:\distrib\Panasonic\info.xls" archPath = "D:\distrib\Panasonic\info.rar" winRarPath = """C:\Program Files\WinRAR\WinRAR.exe""" Set fs = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set f = fs.GetFile(filePath)' Тут указываем за чем следим? x = f.DateLastModified While 1 If f.DateLastModified > x Then sendmail WshShell.Run winRarPath & " a -sfx -t -m3 -r -y -dh -agDD-MMM-YY-HH-MM -ep3 " & archPath & " " & filePath, 0, True x = f.DateLastModified End If WScript.Sleep 1000 Wend Sub sendmail Set objEmail = CreateObject("CDO.Message") objEmail.From = "" 'Тут указываем от кого отправляются сообщения. objEmail.To = "" 'Список или одного получателя кому отправлять сообщения. Если список, то указываем через запятую. objEmail.Subject = "File was Modified, Файл был изменен!" 'Тема письма. objEmail.Textbody = "File was Modified, and server was created backup. Archive will keep 30 days, after it'll be delited!!! This is message, only inform you about somebody opened the ........." 'Само письмо! objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "" 'Учетная запись. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "" 'Пароль. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "" 'Сервер. objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'Порт исходящего сервера. objEmail.Configuration.Fields.Update objEmail.Send 'WScript.Quit 'Эта строка должна быть закоменттрованна, для того чтобы скрипт не завершал работу. А ложился баюшки, до следующего открытия файла. End sub

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

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 14:38, 19-06-2007 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - Проблема со скриптом VBS!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs nod201 Скриптовые языки администрирования Windows 0 05-12-2009 05:44
Разное - [проблема] UNI2ANSI.VBS и INTL.INF ya158 Наборы обновлений для Windows XP/2003/Windows 7 8 05-02-2009 22:24
вирус и червь VBS/Small.k,VBS/Small.NAB zelen Лечение систем от вредоносных программ 1 25-12-2008 10:44
Проблема с скриптом входа пользователей в систему Dmitriy_Demon Microsoft Windows NT/2000/2003 2 12-01-2008 13:26
Проблема со скриптом на VBS UnDetect Microsoft Windows NT/2000/2003 0 14-04-2006 13:26




 
Переход