Для сбора статистики с компьютеров Active Directory можно использовать утилиту LogParser от Microsoft, немного HTML и PowerShell.
После того, как скачали и установили LogParser необходимо добавить к системной переменной Path путь к каталогу, куда LogParser установлен ( по-умолчанию: «C:\Program Files (x86)\Log Parser 2.2\»), хотя даже после добавления переменной, повершелл не увидел logparser и мне пришлось в скрипте переходить в собственно каталог с исполняемым файлом.
Скрипт Powershell:
1 2 3 4 5 6 7 8 | $ArrayOfServers = @() Import-Module ActiveDirectory $ArrayOfServers = Get-ADComputer -Filter 'ObjectClass -eq "Computer"' | Select -Expand DNSHostName cd "C:\Program Files (x86)\Log Parser 2.2" foreach ($element in $ArrayOfServers) { $ExeString = '"SELECT TimeGenerated, EventID, EventType, EventTypeName, EventCategory, EventCategoryName, SourceName, Strings, ComputerName, Message INTO C:\Users\usefree\Documents\scripts\LogParser\'+$element+'_Events.html FROM \\'+$element+'\Application WHERE TimeGenerated >'+"'2014-12-03 00:00:00'"+' AND EventType IN (1;2) ORDER BY TimeGenerated DESC" -tpl:C:\Users\usefree\Documents\scripts\LogParser\logparserTemplate.tpl' .\logparser.exe -i:EVT $ExeString } |
Здесь:
ArrayOfServers — массив, каждый элемент которого получает в качестве значения DNS-имя компьютера, полученное от команды Get-ADComputer
Далее для каждого элемента массива (компьютера из Active Directory) извлекается информация об ошибках и предупреждениях приложений из системного журнала. Все это сортируется по времени (начальная дата — 2014-12-03 00:00:00) и выводится по шаблону в HTML-файл с именем: «имя_компьютера_в_Active_Directory_Events.html» в каталог «C:\Users\usefree\Documents\scripts\LogParser\».
В этом же каталоге лежит и файл logparserTemplate.tpl с содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <LPHEADER> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <STYLE> TD { font-family: Arial }; TH { font-family: Arial }; </STYLE> </HEAD> <BODY> <TABLE BORDERCOLOR=”BLACK” BORDER=”1″ CELLPADDING=”2″ CELLSPACING=”2″> <TR> <TH COLSPAN=4 BGCOLOR=”BLACK”><FONT COLOR=WHITE>New Messages in System Event Log</FONT></TH> </TR> <TR> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>Time Generated</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>EventID</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>EventType</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>EventTypeName</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>EventCategory</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>EventCategoryName</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>SourceName</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>Strings</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>ComputerName</TH> <TH ALIGN=LEFT BGCOLOR=”#C0C0C0″>Message</TH> </TR> </LPHEADER> <LPBODY> <TR> <TD>%TimeGenerated%</TD> <TD>%EventID%</TD> <TD>%EventType%</TD> <TD>%EventTypeName%</TD> <TD>%EventCategory%</TD> <TD>%EventCategoryName%</TD> <TD>%SourceName%</TD> <TD>%Strings%</TD> <TD>%ComputerName%</TD> <TD>%Message%</TD> </TR> </LPBODY> </TABLE> </BODY> </HTML> |
Этот и еще некоторые примеры использования можно заценить тут