Задачи WMI для журналов событий получают данные о событиях из файлов журнала событий и выполняют такие операции, как резервное копирование или очистка файлов журналов. Другие примеры см. в центре сценариев TechNet по адресу https://www.microsoft.com/technet.
Примеры скриптов, показанные в этом разделе, получают данные только с локального компьютера. Дополнительные сведения об использовании скрипта для получения данных с удаленных компьютеров см. в разделе Подключение к WMI на удаленном компьютере.
В следующей процедуре описывается запуск скрипта.
Запуск сценария
Скопируйте код и сохраните его в файле с расширением VBS, например filename.vbs. Убедитесь, что текстовый редактор не добавляет расширение .txt в файл.
Откройте окно командной строки и перейдите в каталог, в котором сохранен файл.
Введите cscript filename.vbs в командной строке.
Если вы не можете получить доступ к журналу событий, проверка, чтобы узнать, выполняется ли вы из командной строки с повышенными привилегиями. Некоторые журналы событий, например журнал событий безопасности, могут быть защищены средствами управления доступом пользователей (UAC).
Примечание
По умолчанию cscript отображает выходные данные скрипта в окне командной строки. Так как скрипты WMI могут создавать большие объемы выходных данных, может потребоваться перенаправить выходные данные в файл. Введите cscript filename.vbs > outfile.txt в командной строке, чтобы перенаправить выходные данные скриптаfilename.vbs на outfile.txt.
В следующей таблице перечислены примеры скриптов, которые можно использовать для получения различных типов данных с локального компьютера.
Часто выполняемые действия в новом интерфейсе
Классы или методы WMI
... получить сведения о журнале событий безопасности?
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='Application'")
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("c:\scripts\application.evt")
WScript.Echo "File saved as c:\scripts\applications.evt"
Next
foreach ($objLogFile in $colLogFiles)
{
[void]$objLogFile.BackupEventlog("c:\scripts\applications.evt")
"File saved as c:\scripts\applications.evt"
}
... Создать резервную копию журнала событий несколько раз?
Перед использованием Win32_NTEventlogFile и метода BackupEventLog убедитесь, что файл резервной копии имеет уникальное имя. Операционная система не позволяет перезаписать существующий файл резервной копии; Перед повторным запуском скрипта необходимо переместить файл резервной копии или переименовать его. При подключении к WMI может потребоваться включить привилегию резервного копирования . Дополнительные сведения см. в разделе Выполнение привилегированных операций с помощью VBScript.
VB
dtmThisDay = Day(Date)
dtmThisMonth = Month(Date)
dtmThisYear = Year(Date)
strBackupName = dtmThisYear & "_" & dtmThisMonth & "_" & dtmThisDay
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='Application'")
For Each objLogfile in colLogFiles
objLogFile.BackupEventLog("c:\scripts\" & strBackupName & "_application.evt")
objLogFile.ClearEventLog()
WScript.Echo "File saved: " & strBackupName & "_application.evt"
Next
... определить количество записей в журнале событий?
Используйте класс Win32_NTEventlogFile и проверка значение свойства NumberOfRecords.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='System'")
For Each objLogFile in colLogFiles
Wscript.Echo objLogFile.NumberOfRecords
Next