1

Тема: VBScript: работаем с утилитой LogParser от Microsoft

Log Parser - полезная утилита командной строки от Microsoft с очень большими возможностями. Утилиту можно бесплатно скачать с сайта Microsoft: http://www.microsoft.com/technet/script … fault.mspx. Статья о Log Parser на русском: Microsoft Log Parser: не журналом единым.

Вот некоторые источники, с которыми может работать Log Parser: журналы IIS различных форматов, журналы событий Windows (не только локальные), файловая система, реестр, служба каталогов Active Directory, CSV, XML и другие структурированные текстовые файлы. Вывод данных возможен в графики и диаграммы распространенных типов, CSV, XML и HTML-файлы по заранее определённым шаблонам, также возможна передача данных на SQL-серверы. Помимо COM-интерфейса с развитой объектной моделью, имеется столь же мощный интерфейс командной строки. Имеется подробная документация. Далее несколько примеров на VBScript.

Поиск по маске всех dll-файлов на диске C:

Set oLogQuery = CreateObject("MSUtil.LogQuery")
Set oFormat = CreateObject("MSUtil.LogQuery.FileSystemInputFormat")
Set oRecordSet = oLogQuery.Execute("SELECT * FROM C:\*.dll", oFormat)
i = 0
While Not oRecordSet.atEnd
    Set oRecord = oRecordSet.getRecord()
    strValue = oRecord.getValue("Path") ' список поддерживаемых полей - см. справку утилиты LogParser
    WScript.Echo strValue
    i = i + 1
    oRecordSet.moveNext
Wend
oRecordSet.Close
WScript.Echo "На диске ""C:"" найдено dll-файлов: " & i

Поиск по маске всех exe-файлов в каталоге c:\windows, вывод отчёта в csv-файл рядом со скриптом:

FileName = "report.csv"
PathFile = "c:\windows\*.exe"
Set oParser = CreateObject("MSUtil.LogQuery")
Set oLogInputFmt = CreateObject("MSUtil.LogQuery.FileSystemInputFormat")
Set oLogOutputFmt = CreateObject("MSUtil.LogQuery.CSVOutputFormat")
oParser.ExecuteBatch "SELECT Size,Attributes,LastWriteTime,Path INTO " & _
    FileName & " FROM " & PathFile & " ORDER BY Size ", oLogInputFmt, oLogOutputFmt

Поиск по маске всех exe-файлов в каталоге c:\windows, вывод отчёта в визуальной форме в DataGrid на специальной форме (запускать с помощью wscript.exe):

PathFile = "c:\windows\*.exe"
Set oParser = CreateObject("MSUtil.LogQuery")
Set oLogInputFmt = CreateObject("MSUtil.LogQuery.FileSystemInputFormat")
Set oLogOutputFmt = CreateObject("MSUtil.LogQuery.DataGridOutputFormat")
oParser.ExecuteBatch "SELECT Size,Name,Path FROM " & PathFile & " ORDER BY Size ", _
    oLogInputFmt, oLogOutputFmt

Благодарность за идеи - wictor.

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