На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Windows
1. Указывайте версию Вашей ОС.
2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
3. Не разрешается давать советы из разряда "Поставь Linux".
4. Переустановка ОС - крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов - только тогда задавайте вопрос на форуме.
7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение
Модераторы: Akina
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Помогите написать скрипт , последовательный запуск трёх скриптов
    Всем привет, вот решил обратиться за помощью так как я не силен в вб прошу помочь с написанием скрипта:
    Есть сервер вин 2к3 очень часто пропадает свет, упс долго не тянет, и часто юзеры не успевают выйти с 1с и сохранить данные. Что нужно сделать нужно пропинговать юзеров в сети и отправить им сообщение что через 5 мин(например) будет отключен сервер, вывод сообщение если можно в правом верхнем углу или же по центу, время что б уменьшалось до 0(если не льзя вывести у юзера индекатор времени до отключения сервера, то пусть так : 5 мин - 4 мин - 3 мин - 2 мин - 1 мин - 30 сек - 10 сек отключение сервера).
    Вот немного нарыл инфы по этому поводу:
    ExpandedWrap disabled
      '------------------------------------------
      'Отправка письма уведомление о отключении сервера или другое сообщении
      '-----------------------------------------
      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 -а
    Спасибо за понимание.

    Эта тема была разделена из темы "Полезные скрипты"
      cRYSMAS, для начала проясните исходную ситуацию, указав:
      - тип сети (домен или рабочая группа);
      - тип (файловая или SQL) и версию 1С;
      - способ подключения клиентов к БД (терминальный или нет);
      - наибольшее кол-во пользователей, работающих с БД одновременно;
      - версии ОС на рабочих станциях клиентов;
      - есть ли подключения клиентов по WiFi.
        cRYSMAS
        Подключите УПС к серверу и настройте соотв. запуск по событиям пропадания напряжения и разрядки батареи.
          Цитата 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 скрипт второй нет.
            Цитата cRYSMAS @
            я не могу например в поле "отключение электропитания" поставить 3 файла работает только 1 первый (С:\shutdown.vbs; C:\test.vbs;) и т.д. грузиться 1 скрипт второй нет.

            А собрать три скрипта в один идея не посещала?

            Добавлено
            Ну или запускать скрипт, который запускает нужные скрипты по одному? в заданном порядке, с требуемыми паузами...
              Цитата Akina @
              А собрать три скрипта в один идея не посещала?

              Добавлено Сегодня, 16:28
              Ну или запускать скрипт, который запускает нужные скрипты по одному? в заданном порядке, с требуемыми паузами...

              Цитата Dmitrii @
              Не знаю как 3 скрипта обьеденить в 1, чтоб сначала запускался скрипт сообщения о отключении сервера(проверял этот скрипт сообщение приходит с задержкой 2-4 мин)потом пинговались юзеры в сети и показывалось соответствующие сообщение об отключении сервера через такое то время, в конце отключался сервак.


              Ну нет у мня тех знаний чтоб объедение 3 скрипта в 1 или скрипт который бы загружал 3 скрипта последовательно, прошу помощи в написание данного.
              Еще не знаю как сделать чтоб сообщение пользователям отправлялось, нашел скрипт как пинговать компы в сети, нашел как отправлять сообщение виндой

              Вообще если кто захочет то хоть скрипт сообщение пользователям, а остальное я сам постараюсь нарыть.
              Это для меня не за деньги, что б удобней было.
              Если не кто не желает помочь, подскажите хоть что не будь по существу.
              ПС. Если желание есть=)
                Цитата cRYSMAS @
                скрипт который бы загружал 3 скрипта последовательно

                ExpandedWrap disabled
                  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 @
                скрипт сообщение пользователям

                ExpandedWrap disabled
                  wscript.echo "Message"
                  вот что я сделал:
                  скрипт load.vbs:
                  ExpandedWrap disabled
                          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:
                  ExpandedWrap disabled
                          Set WSHShell = WScript.CreateObject("WScript.Shell")
                          WSHShell.Run"shutdown -s -f -t 300",0


                  2) скрипт off-4.vbs:
                  ExpandedWrap disabled
                      Wscript.Echo "Отправка завершена"


                  3) скрипт off-3.vbs:
                  ExpandedWrap disabled
                      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

                  нашел случайно убрал " что и приводило к неработоспособности скрипта.
                  Вопрос в другом почему сообщение не выводилось?

                  Добавлено
                  и можно как то не выводить окна которые открываются и потом закрываются?
                    ExpandedWrap disabled
                      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"
                      Цитата cRYSMAS @
                      Всем привет, вот решил обратиться за помощью так как я не силен в вб прошу помочь с написанием скрипта:
                      Есть сервер вин 2к3 очень часто пропадает свет, упс долго не тянет, и часто юзеры не успевают выйти с 1с и сохранить данные.

                      т.е. на фазе серверной - напряжение часто пропадает а на фазе юзерской стабилное?
                      Поменяйте фазы, должно быть наоборот )))
                        Цитата 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"

                        Вы не поняли мне не нужны команды мне нужно что исполняемые скрипты корректно запускались в определенной последовательности.
                        вообщем насчет задержки понял как поставить спс, если поставить скрипты а не команды без параметров все бегает.
                        Подскажите я правильно определил переменную бегин?
                        ExpandedWrap disabled
                          begin = "300"
                          $a=time()- $begin;
                          print "$a сек. с начала теста";
                          print "У вас осталось:".(300-$a);


                        Добавлено
                        Цитата КролеГ @
                        т.е. на фазе серверной - напряжение часто пропадает а на фазе юзерской стабилное?
                        Поменяйте фазы, должно быть наоборот )))

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

                        Добавлено
                        не правильно я уже потом увидел=(
                          Цитата cRYSMAS @
                          Подскажите я правильно определил переменную бегин?

                          Конечно нет. Причём на любом языке...
                            Цитата Akina @
                            Конечно нет. Причём на любом языке...

                            Вот нашел=) отсчет времени
                            ExpandedWrap disabled
                              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" запускал в командной строке пишет: Ошибка компиляции. Предполагается наличие инструкции.
                            Что не так?
                              Цитата cRYSMAS @
                              ругаеться на 3 строку "Static Secs As Long"

                              В VBS нет Static, оно бывает только в VB и VBA.
                                Ребят вопрос: есть скриптик он выводит на рабочий стол инфу как его добафить правельн ов цикл, пример:
                                Если х<> 50 тогда
                                Вывод на екран сообщения
                                иначе х > 20
                                Вывод на екран сообщения
                                ИначеЕсли х > 40
                                Вывод на екран сообщения
                                КонецЕсли.

                                В выборе сообщения спомощью:
                                ExpandedWrap disabled
                                  status = vbInformation
                                  StrKar = CHR (13) + CHR (10) ' Перенос каретки
                                  myStr = "Отключения сервера через 5 мин" + StrKar
                                  msgbox myStr, status, "Внимание!!!"
                                помогите правильно написать синтаксис в вб
                                ПС. Вывод сообщения мне подсказали, в гугле цикл на вбс задавал поиск но не разобрался =(
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0659 ]   [ 15 queries used ]   [ Generated: 28.04.24, 13:27 GMT ]