If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Сбор статистики об ошибках с компьютеров Active Directory. PowerShell.

Постов 33 из 176

Для сбора статистики с компьютеров 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>

Этот и еще некоторые примеры использования можно заценить тут

, , ,

Menu