1 (изменено: nnn123, 2011-07-15 14:49:03)

Тема: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

задача такова: скрипт должен пропинговать адрес и в том случае если связи нет (нет пинга - таймаут) продолжить выполняться и далее запустить сторонний exe-шник С:\k.exe - далее таймаут 1 минута, - далее перезагрузка пк..

вот на чем остановился:


Option Explicit
Dim Shell, strCommand, strHost, ReturnCode
strHost = "192.168.0.50"
Set Shell = wscript.createObject("wscript.shell")
strCommand = "ping -n 1 " & strHost
ReturnCode = Shell.Run(strCommand,0, True)
If ReturnCode = 1 Then
wscript.echo strHost & "   Связи НЕТ!... продолжаем..."
Else
wscript.echo strHost & "  -  Связь есть."
End If

2

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

nnn123 пишет:

... запустить сторонний exe-шник С:\k.exe

Используйте либо метод Run (для запуска независимого процесса), либо метод Exec (для запуска дочернего процесса) объекта Shell.

nnn123 пишет:

... таймаут 1 минута...

WScript.Sleep 60000
nnn123 пишет:

... перезагрузка пк...


Set objCollection = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2").InstancesOf("Win32_OperatingSystem")
For Each objItem In objCollection
	objItem.Reboot
Next

3 (изменено: nnn123, 2011-07-16 19:01:21)

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

Thanks! попробую реализовать и протестировать сегодня.

Еще такой вопрос: Как сделать чтобы после перезагрузки данный скрипт не запустился снова находясь в автозагрузке (C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка)???

Как вариант может его зациклить на выполнение до 2-х раз... но вот как реализовать пока не придумал что-то...(

4

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

nnn123 пишет:

Как сделать чтобы после перезагрузки данный скрипт не запустился снова находясь в автозагрузке (C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка)???

Как вариант может его зациклить на выполнение до 2-х раз... но вот как реализовать пока не придумал что-то...(

Реестр: автозагрузка и аналогичное

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

5 (изменено: nnn123, 2011-07-16 19:24:06)

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

не совсем понял(
тоесть реестр? через реестр не очень удобно будет делать...

смысл задачи вот в чем: данный скрипт будет удаленно отправляться на пк до которых физически добраться не реально.
файл который требуется запустить скриптом должен выполняться только при отсутствии локалки. После того как отработает exe-шник машина уйдет в ребут и при старте снова запуститься скрипт. Как замкнуть данный цикл? чтобы скрипт после перезагрузки пк снова не запустился?

6

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

nnn123 пишет:

смысл задачи вот в чем: данный скрипт будет удаленно отправляться на пк до которых физически добраться не реально.
файл который требуется запустить скриптом должен выполняться только при отсутствии локалки. После того как отработает exe-шник машина уйдет в ребут и при старте снова запуститься скрипт. Как замкнуть данный цикл? чтобы скрипт после перезагрузки пк снова не запустился?

Наверное, засунуть скрипт изначально не в C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка, а в раздел реестра RunOnce, откуда запуск будет одноразовым. Либо в самом скрипте перед ребутом машины удалять ярлыки/записи реестра, какие надо.

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

7

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

удалять ярлыки - попробую так.. спс.

8 (изменено: nnn123, 2011-07-20 11:05:01)

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

получилось вот что:

Option Explicit
Dim Shell, strCommand, strHost, ReturnCode
strHost = "192.168.0.50"
Set Shell = wscript.createObject("wscript.shell")
strCommand = "ping -n 1 " & strHost
ReturnCode = Shell.Run(strCommand,0, True)
If ReturnCode = 1 Then
wscript.echo strHost & "   Связи НЕТ!..."
Else
wscript.echo strHost & "  -  Связь с МОДЕМОМ есть."
End If

dim oShell
set oShell= WScript.CreateObject("WScript.Shell") 
oShell.Run "c:\kk.exe"

WScript.Sleep 120000

dim FileSystemObject, fso
set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject 
FSO.DeleteFile "C:\1.vbs"

dim Win32_OperatingSystem
dim objCollection
dim objItem
Set objCollection = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2").InstancesOf("Win32_OperatingSystem")
For Each objItem In objCollection
    objItem.Reboot
Next

Вопрос в том как сделать так чтобы скрипт работал только если пинга нет?! в том случае если пинг есть скрипт останавливался.
Либо альтернативное решение: Как зациклить выполнение скрипта до 3-х раз с учетом того что после каждого выполнения машина будет перезагружаться

9

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

а может лучче поставить все заплатки на виндуз ?

Я конечно далек от мысли... (с)

10

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

if Shell.Run(strCommand,0, True)=0 then wsh.quit
Я конечно далек от мысли... (с)

11

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

smaharbA пишет:

а может лучче поставить все заплатки на виндуз ?

Заплатки?)) о чем именно речь?)

12

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

об c:\kk.exe

Я конечно далек от мысли... (с)

13

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

кк.ехе это модуль антивира

14

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

это кидокилер - вот и поставьте заплатки на ОС, и не майтесь

Я конечно далек от мысли... (с)

15

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

о каких заплатках речь? что поставить? закрыть/открыть?

16

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

smaharbA, некрасиво отвечать обрывками фраз . Это невежливо. Если так лень говорить, лучше уж промолчать вообще.

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

17 (изменено: smaharbA, 2011-07-22 10:31:23)

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

достаточно обновить систему, либо поставить
http://www.microsoft.com/rus/technet/se … 8-067.mspx
http://www.microsoft.com/rus/technet/se … 8-068.mspx
http://www.microsoft.com/rus/technet/se … 9-001.mspx

пролечив все компьютеры сети кидокиллером (можно удаленно если позволят права)

Я конечно далек от мысли... (с)

18

Re: VBS: Запуск EXE-шника при условии что не пингуется определенный адрес

ясно. спасибо за помощь!