Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.100.210] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем привет, вот решил обратиться за помощью так как я не силен в вб прошу помочь с написанием скрипта:
Есть сервер вин 2к3 очень часто пропадает свет, упс долго не тянет, и часто юзеры не успевают выйти с 1с и сохранить данные. Что нужно сделать нужно пропинговать юзеров в сети и отправить им сообщение что через 5 мин(например) будет отключен сервер, вывод сообщение если можно в правом верхнем углу или же по центу, время что б уменьшалось до 0(если не льзя вывести у юзера индекатор времени до отключения сервера, то пусть так : 5 мин - 4 мин - 3 мин - 2 мин - 1 мин - 30 сек - 10 сек отключение сервера). Вот немного нарыл инфы по этому поводу: '------------------------------------------ 'Отправка письма уведомление о отключении сервера или другое сообщении '----------------------------------------- On Error Resume Next Const cdoSendUsingPickup = 1 Const cdoSendUsingPort = 2 'Must use this to use Delivery Notification Const cdoAnonymous = 0 Const cdoBasic = 1 ' clear text Const cdoNTLM = 2 'NTLM 'Delivery Status Notifications Const cdoDSNDefault = 0 'None Const cdoDSNNever = 1 'None Const cdoDSNFailure = 2 'Failure Const cdoDSNSuccess = 4 'Success Const cdoDSNDelay = 8 'Delay Const cdoDSNSuccessFailOrDelay = 14 'Success, failure or delay set objMsg = CreateObject("CDO.Message") set objConf = CreateObject("CDO.Configuration") Set objFlds = objConf.Fields With objFlds .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru" .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "login" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "parol" .Update End With strBody = "This is a sample message." & vbCRLF strBody = strBody & "It was sent using CDO." & vbCRLF With objMsg Set .Configuration = objConf .To = "kuda@yandex.ru" .From = "ot_kogo@yandex.ru" .Subject = "tema" .TextBody = strBody 'use .HTMLBody to send HTML email. .Addattachment "c:\test.txt" .Fields("urn:schemas:mailheader:disposition-notification-to") = "ot_kogo@yandex.ru" .Fields("urn:schemas:mailheader:return-receipt-to") = "ot_kogo@yandex.ru" .DSNOptions = cdoDSNSuccessFailOrDelay .Fields.update .Send End With Wscript.Echo "Отправка завершена" 'Скрипт ищет компы в домене и выводит их на екран Set Shell = CreateObject("Shell.Application") 'получение папки "Сетевое окружение" Set objFolder = Shell.NameSpace("::{208D2C60-3AEA-1069-A2D7-08002B30309D}") 'получение папки "Вся сеть" Set objFolder = objFolder.Items().Item("EntireNetwork").GetFolder 'получение папки "Microsoft Windows Network" For Each objItem In objFolder.Items() If objItem.Name = "Microsoft Windows Network" Then Set objFolderNetwork = objItem.GetFolder End If Next 'перебор доменов и рабочих групп For Each objItem In objFolderNetwork.Items() If objItem.IsFolder Then Set objFolder = objItem.GetFolder 'перебор компьютеров For Each objSubItem In objFolder.Items() WScript.Echo objSubItem.Name Next End If Next 'Скрипт отключения сервера через 5 мин Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run"shutdown -s -f -t 300",0 Все скрипты не мои взял с инета если очень нид поищю где именно и дам ссылки. Не знаю как 3 скрипта обьеденить в 1, чтоб сначала запускался скрипт сообщения о отключении сервера(проверял этот скрипт сообщение приходит с задержкой 2-4 мин)потом пинговались юзеры в сети и показывалось соответствующие сообщение об отключении сервера через такое то время, в конце отключался сервак. Скрипт запускаю с програмы для упс UPSMON plus for win ver 2.83 при отключении электричества. При включении электричества все тоже самое просто поменять команду: WSHShell.Run"shutdown -s -f -t 300",0 на WSHShell.Run"shutdown -а Спасибо за понимание. Эта тема была разделена из темы "Полезные скрипты" |
Сообщ.
#2
,
|
|
|
cRYSMAS, для начала проясните исходную ситуацию, указав:
- тип сети (домен или рабочая группа); - тип (файловая или SQL) и версию 1С; - способ подключения клиентов к БД (терминальный или нет); - наибольшее кол-во пользователей, работающих с БД одновременно; - версии ОС на рабочих станциях клиентов; - есть ли подключения клиентов по WiFi. |
Сообщ.
#3
,
|
|
|
cRYSMAS
Подключите УПС к серверу и настройте соотв. запуск по событиям пропадания напряжения и разрядки батареи. |
Сообщ.
#4
,
|
|
|
Цитата Akina @ cRYSMAS, для начала проясните исходную ситуацию, указав: - тип сети (домен или рабочая группа); - тип (файловая или SQL) и версию 1С; - способ подключения клиентов к БД (терминальный или нет); - наибольшее кол-во пользователей, работающих с БД одновременно; - версии ОС на рабочих станциях клиентов; - есть ли подключения клиентов по WiFi. 1) Домен Поднят АД ДШСП, ДНС 2) Есть 1С, файловая вер. 7,70,027 (Ну я конечно не знаю зачем Вам 1с), есть и другая прога "Скарб" СКл - база. 3) есть терминальный 4) В 1с макс 2 человека, в Скарбе 6 и со временем будет больше 5) на всех Вин ХП проф./эдиш. 6) Есть недавно точку поставили и ноут подключили на ноуте вин хп проф. Добавлено Цитата cRYSMAS @ и настройте соотв ну это все и так стоит, упс есть на серваке, настроен на отключение НО я не могу например в поле "отключение электропитания" поставить 3 файла работает только 1 первый (С:\shutdown.vbs; C:\test.vbs;) и т.д. грузиться 1 скрипт второй нет. |
Сообщ.
#5
,
|
|
|
Цитата cRYSMAS @ я не могу например в поле "отключение электропитания" поставить 3 файла работает только 1 первый (С:\shutdown.vbs; C:\test.vbs;) и т.д. грузиться 1 скрипт второй нет. А собрать три скрипта в один идея не посещала? Добавлено Ну или запускать скрипт, который запускает нужные скрипты по одному? в заданном порядке, с требуемыми паузами... |
Сообщ.
#6
,
|
|
|
Цитата Akina @ А собрать три скрипта в один идея не посещала? Добавлено Сегодня, 16:28 Ну или запускать скрипт, который запускает нужные скрипты по одному? в заданном порядке, с требуемыми паузами... Цитата Dmitrii @ Не знаю как 3 скрипта обьеденить в 1, чтоб сначала запускался скрипт сообщения о отключении сервера(проверял этот скрипт сообщение приходит с задержкой 2-4 мин)потом пинговались юзеры в сети и показывалось соответствующие сообщение об отключении сервера через такое то время, в конце отключался сервак. Ну нет у мня тех знаний чтоб объедение 3 скрипта в 1 или скрипт который бы загружал 3 скрипта последовательно, прошу помощи в написание данного. Еще не знаю как сделать чтоб сообщение пользователям отправлялось, нашел скрипт как пинговать компы в сети, нашел как отправлять сообщение виндой Вообще если кто захочет то хоть скрипт сообщение пользователям, а остальное я сам постараюсь нарыть. Это для меня не за деньги, что б удобней было. Если не кто не желает помочь, подскажите хоть что не будь по существу. ПС. Если желание есть=) |
Сообщ.
#7
,
|
|
|
Цитата cRYSMAS @ скрипт который бы загружал 3 скрипта последовательно Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "cscript.exe script1.vbs parameters1" oShell.run "cscript.exe script2.vbs parameters2" oShell.run "cscript.exe script3.vbs parameters3" Set oShell = Nothing Если нужно - замените cscript на wscript, добавите необходимые ключи. Добавлено Цитата cRYSMAS @ скрипт сообщение пользователям wscript.echo "Message" |
Сообщ.
#8
,
|
|
|
вот что я сделал:
скрипт load.vbs: Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "cscript.exe c:\off-2.vbs //d //nologo " oShell.run "cscript.exe c:\off-4.vbs //d //logo //t:10" oShell.run "cscript.exe c:\off-3.vbs //d //logo //t:5" Set oShell = Nothing 1)скрипт off-2.vbs: Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run"shutdown -s -f -t 300",0 2) скрипт off-4.vbs: Wscript.Echo "Отправка завершена" 3) скрипт off-3.vbs: Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run"shutdown -a Когда запускаю с командной строки: cscript.exe c:\load.vbs Отрывается быстро окна 3 штуки и закрываются секунды 2 на это уходит, грузиться off-2.vbs на отключение компьютера 5 мин и все 3 и 4 скрипт не грузиться, то есть после off-2.vbs должен грузиться скрипт off-4.vbs с сообщение "Отправка завершена" после этого скрипт off-3.vbs отмена выключения компьютера. В чем ошибка? Добавлено Цитата cRYSMAS @ WSHShell.Run"shutdown -a нашел случайно убрал " что и приводило к неработоспособности скрипта. Вопрос в другом почему сообщение не выводилось? Добавлено и можно как то не выводить окна которые открываются и потом закрываются? |
Сообщ.
#9
,
|
|
|
Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "shutdown -s -f -t 300",0 WScript.Sleep 10000 Wscript.Echo "Отправка завершена" WScript.Sleep 5000 WSHShell.Run "shutdown -a" |
Сообщ.
#10
,
|
|
|
Цитата cRYSMAS @ Всем привет, вот решил обратиться за помощью так как я не силен в вб прошу помочь с написанием скрипта: Есть сервер вин 2к3 очень часто пропадает свет, упс долго не тянет, и часто юзеры не успевают выйти с 1с и сохранить данные. т.е. на фазе серверной - напряжение часто пропадает а на фазе юзерской стабилное? Поменяйте фазы, должно быть наоборот ))) |
Сообщ.
#11
,
|
|
|
Цитата Akina @ WScript.Sleep 10000 Цитата Akina @ Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "shutdown -s -f -t 300",0 WScript.Sleep 10000 Wscript.Echo "Отправка завершена" WScript.Sleep 5000 WSHShell.Run "shutdown -a" Вы не поняли мне не нужны команды мне нужно что исполняемые скрипты корректно запускались в определенной последовательности. вообщем насчет задержки понял как поставить спс, если поставить скрипты а не команды без параметров все бегает. Подскажите я правильно определил переменную бегин? begin = "300" $a=time()- $begin; print "$a сек. с начала теста"; print "У вас осталось:".(300-$a); Добавлено Цитата КролеГ @ т.е. на фазе серверной - напряжение часто пропадает а на фазе юзерской стабилное? Поменяйте фазы, должно быть наоборот ))) не совсем так есть удаленный пользователи которые подключены через ВПН, и у них свет есть, когда на серваке тухнет то нид их предупреждать что б они вышли. На серваке и у юзеров стоят упс. Добавлено не правильно я уже потом увидел=( |
Сообщ.
#12
,
|
|
|
Цитата cRYSMAS @ Подскажите я правильно определил переменную бегин? Конечно нет. Причём на любом языке... |
Сообщ.
#13
,
|
|
|
Цитата Akina @ Конечно нет. Причём на любом языке... Вот нашел=) отсчет времени Code: Private Sub tmrCountdown_Timer () Static Secs As Long If Secs <= 0 Then Secs = 300 CountdownTime.Caption = "Please Wait: " & Secs & " Seconds" Secs = Secs - 1 Then If Secs <= 0 Then tmrCountdown.Enabled = False mdLogin.Visible = true End If End Sub У меня ругаеться на 3 строку "Static Secs As Long" запускал в командной строке пишет: Ошибка компиляции. Предполагается наличие инструкции. Что не так? |
Сообщ.
#14
,
|
|
|
Цитата cRYSMAS @ ругаеться на 3 строку "Static Secs As Long" В VBS нет Static, оно бывает только в VB и VBA. |
Сообщ.
#15
,
|
|
|
Ребят вопрос: есть скриптик он выводит на рабочий стол инфу как его добафить правельн ов цикл, пример:
Если х<> 50 тогда Вывод на екран сообщения иначе х > 20 Вывод на екран сообщения ИначеЕсли х > 40 Вывод на екран сообщения КонецЕсли. В выборе сообщения спомощью: status = vbInformation StrKar = CHR (13) + CHR (10) ' Перенос каретки myStr = "Отключения сервера через 5 мин" + StrKar msgbox myStr, status, "Внимание!!!" ПС. Вывод сообщения мне подсказали, в гугле цикл на вбс задавал поиск но не разобрался =( |