daily pastebin goal
4%
SHARE
TWEET

Untitled

a guest Oct 13th, 2017 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '*******************************************************************
  2. ' Имя: SyncMonitor.vbs
  3. ' Язык: VBScript
  4. ' Описание: Подписка на события WMI в синхронном режиме
  5. '*******************************************************************
  6. Option Explicit
  7. ' Объявляем переменные
  8. Dim strComputer       ' Имя компьютера
  9. Dim strNamespace      ' Имя пространства имен WMI
  10. Dim objService        ' ОбъектSWbemServices    
  11. Dim objEventSource    ' ОбъектSWbemEventSource
  12. Dim objEvent          ' Объект SWbemObject
  13. Dim strResult         ' Результат запроса
  14. ' Константа для задания режима открытия файла
  15. Const ForAppend = 8
  16. ' Функция для записи информации в файл
  17. Sub TextOut (Text, File)
  18. ' Объявляем переменные
  19. Dim  FSO, FOut
  20. ' СоздаемобъектFileSystemObject
  21. Set  FSO=WScript.CreateObject("Scripting.FileSystemObject")
  22. ' Открываем выходной файл для записи
  23. Set  FOut = FSO.OpenTextFile (File,ForAppend,true)
  24. ' Записываем текстовую строку в файл
  25. FOut.WriteLine Text
  26. ' Закрываем выходной файл
  27. FOut.Close
  28. End Sub
  29. '**********************
  30. Начало
  31. *************************************
  32. ' Присваиваем начальные значения переменным
  33. strComputer = "."
  34. strNamespace = "Root\CIMV2"
  35. ' Подключаемся к пространству имен WMI
  36. Set objService = GetObject("WinMgmts:\\" & _strComputer & "\" & strNamespace)
  37. ' Выполняем запрос для подписки на извещения о событиях WMI
  38. Set objEventSource = objService.ExecNotificationQuery _("SELECT * FROM __InstanceModificationEvent " & _"WITHIN 5 WHERE TargetInstance ISA 'Win32_Service'")
  39. ' Выводим сообщение о запуске сканера
  40. Wscript.Echo " Запущен сканер изменения состояния служб"
  41. ' Записываем в переменную objEvent следующее событие
  42. Set objEvent = objEventSource.NextEvent
  43. ' Пр
  44. оверяем, изменилось ли состояние службы
  45. If objEvent.TargetInstance.State <> objEvent.PreviousInstance.State Then
  46. ' Формирум строку для вывода
  47. strResult = Date & " " & Time & vbCrLf &_"Служба: " & objEvent.TargetInstance.DisplayName &_"." & vbCrLf &_"Текущее состояние: " & objEvent.TargetInstance.State &_"." & vbCrLf &_"Предыдущее состояние: " & objEvent.PreviousInstance.State &_"." & vbCrLf
  48. ' Выводим результат на экран
  49. WScript.Echo strResult
  50. ' Выводим результат в текстовый файл
  51. TextOut  "*****************************" & vbCrLf & strResult &_"*****************************", "D\student\LogService.txt"
  52. End If
  53. '************************* Конец ***********************************
RAW Paste Data
Top