PDA

Показать полную графическую версию : Скрипт запускающий или проверяющий на работоспособность службу


O L E G
13-04-2012, 11:47
Помогиде написать скрипт,который каждые 10 секунд будет запускать или проверять на работоспособность службу browser
на cmd я сделал!
:x ;
ping -n 10 127.0.0.1 >nul
net start browser >nul
goto x ;

Но мне надо на VBS

Iska
13-04-2012, 14:34
Тупо — раз:
Option Explicit

Dim objSWbemServicesEx

Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")

Do
objSWbemServicesEx.Get("Win32_Service.Name='Browser'").StartService()
WScript.Sleep 10 * 1000
Loop

Set objSWbemServicesEx = Nothing

WScript.Quit 0

или — два:
Option Explicit

Dim objShell

Set objShell = WScript.CreateObject("Shell.Application")

Do
objShell.ServiceStart "Browser", False
WScript.Sleep 10 * 1000
Loop

Set objShell = Nothing

WScript.Quit 0

Поясните Вашу глобальную цель.

DmitriiV
13-04-2012, 14:39
Вот ещё заготовка:

Dim objFS, objFile, strLog
Dim objWMI, objCollection, objItem
Dim strService, blnHasError, intTemp, strTemp

strService = "browser"
'strLog = "BrowserService_State.log"
'Set objFS = CreateObject("Scripting.FileSystemObject")
'strLog = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), strLog)
On Error Resume Next
While Hour(Time) < 18
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
If Err.Number = 0 Then
Set objCollection = objWMI.ExecQuery("SELECT * FROM Win32_Service WHERE Name='" & strService & "'")
If Err.Number = 0 Then
If objCollection.Count > 0 Then
blnHasError = False
For Each objItem In objCollection
If StrComp(objItem.State, "Running", vbTextCompare) <> 0 Then
If StrComp(objItem.StartMode, "Disabled", vbTextCompare) = 0 Then
intTemp = objItem.ChangeStartMode("Automatic")
If intTemp <> 0 Then
intTemp = objItem.ChangeStartMode("Manual")
If intTemp <> 0 Then blnHasError = True
End If
End If
If blnHasError Then
strTemp = Now & vbNewLine & "Ошибка изменения режима запуска службы: " & intTemp
Else
intTemp = objItem.StartService
If intTemp = 0 Then
strTemp = Now & vbNewLine & "Служба запущена."
Else
strTemp = Now & vbNewLine & "Ошибка при запуске службы: " & intTemp
End If
End If
Else
strTemp = Now & vbNewLine & "Служба работает."
End If
Next
Set objItem = Nothing
Else
strTemp = Now & vbNewLine & "Служба не найдена."
End If
Else
strTemp = Now & vbNewLine & "Ошибка выполнения запроса: " & Err.Number & vbNewLine & Err.Description
Err.Clear
End If
Set objCollection = Nothing
Else
strTemp = Now & vbNewLine & "Ошибка подключения к WMI-пространству: " & Err.Number & vbNewLine & Err.Description
Err.Clear
End If
Set objWMI = Nothing
'Set objFile = objFS.OpenTextFile(strLog, 8)
'If Err.Number = 0 Then
' objFile.WriteLine strTemp
' objFile.Close
'Else
' Err.Clear
'End If
'Set objFile = Nothing
WScript.Sleep 10000
Wend
'Set objFS = Nothing
WScript.Quit 0

O L E G
13-04-2012, 16:02
DmitriiV, Благодарю, то что надо




© OSzone.net 2001-2012