Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_drsp_09.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
207.87 Кб
Скачать

Практичне завдання:

  1. Набрати та відлагодити всі наведені в теоретичних відомостях лістинги.

  2. Робота з журналом подій Windows

1) скопіюйте до себе з каталогу Templates на компакт-диску базу даних EventLog.mdb в кореневий каталог диска C : і зніміть з неї прапорець "Тільки для читання"

2) проглянете єдину таблицю в цій базі - Events

3) напишіть скрипт EventLogProcessing.vbs, який би :

  • переносив би записи з журналу подій System на вашому локальному комп'ютері в цю базу даних (треба тільки поля ComputerName, EventType, EventCode, Message і TimeWritten);

  • після закінчення перенесення очищав би журнал подій System.

Відповідь до вправи 1. Робота з журналом подій Windows

Код скрипта EventLogProcessing.vbs може бути таким:

Option Explicit

Dim cn, rs, oLocator, oSvc, oColEvents, oColEventLog, Item, oLogFile

Set cn = CreateObject("ADODB.Connection")

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\EventLog.mdb"

cn.Open

Set rs = CreateObject("ADODB.Recordset")

rs.CursorType = 3

rs.LockType = 3

rs.Open "Events", cn

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

Set oSvc = oLocator.ConnectServer()

Set oColEvents = oSvc.ExecQuery _

("Select * from Win32_NTLogEvent WHERE Logfile = 'System'")

For Each Item In oColEvents

            rs.AddNew

            rs("ComputerName") = Item.ComputerName

            rs("EventType") = Item.Type

            rs("EventCode") = Item.EventCode

            rs("Message") = Item.Message

            rs("TimeWritten") = Item.TimeWritten

            rs.Update

Next

Set oColEventLog = oSvc.ExecQuery _

("Select * from Win32_NTEventLogFile WHERE LogFileName = 'System'")

For Each oLogFile In oColEventLog

            oLogFile.ClearEventLog

Next

WScript.Echo "Done"

  1. Напишіть скрипт ServiceMonitoring.vbs, який би раз в десять секнуд відстежував би зміни в стані служб Windows на вашому комп'ютері і у разі зміни статусу служб (наприклад, яка-небудь служба була зупинена), виводив би в стандартну консоль виводу інформацію про ім'я цієї служби і її поточний стан.

Відповідь до вправи 2. Робота з подіями операційної системи

Код скрипта ServiceMonitoring.vbs може виглядати так:

Dim oLocator, oSvc, oColServices, oService

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

Set oSvc = oLocator.ConnectServer()

Set oColServices = oSvc.ExecNotificationQuery _

("Select * from __instancemodificationevent " _

        & "within 10 where TargetInstance isa 'Win32_Service'")

Do

Set oService = oColServices.NextEvent

            WScript.Echo oService.TargetInstance.Name & vbTab & vbTab & _ oService.TargetInstance.State

Loop

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]