Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Power Shell в MS 2008 R2 должен вытянть события из eventlog (http://forum.oszone.net/showthread.php?t=232062)

Holden Coldfield 04-04-2012 18:18 1893466

Power Shell в MS 2008 R2 должен вытянть события из eventlog
 
Привет Всем!

Как сделать так чтобы powershell вытягивал события 20271, 20272 из журнала событий (System) и складывал все события произошедшие за этот день в txt файл, а этот файл потом отправлялся на мыло. Подскажите плз.

Kazun 04-04-2012 18:28 1893470

Код:

Get-WinEvent -FilterHashtable @{LogName="System";Id=20271,20272;StartTime=[datetime]::Today} | Format-List * | out-file C:\log.txt

send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>" -subject "Sending the Attachment" -body "Forgot to send the attachment. Sending now." -Attachment "C:\log.txt" -smtpServer smtp.fabrikam.com


Iska 04-04-2012 18:50 1893480

Kazun, я правильно понимаю, что при использовании «Get-WinEvent -FilterHashtable …» сокращается время выборки по сравнению с «Get-EventLog … | Where-Object -FilterScript {…}»?

Kazun 04-04-2012 18:53 1893482

Код:

PS > Measure-Command {Get-WinEvent -logname System | Where {$_.Id -eq "7036"}}


Days              : 0
Hours            : 0
Minutes          : 0
Seconds          : 16
Milliseconds      : 621
Ticks            : 166214388
TotalDays        : 0.000192377763888889
TotalHours        : 0.00461706633333333
TotalMinutes      : 0.27702398
TotalSeconds      : 16.6214388
TotalMilliseconds : 16621.4388


PS > Measure-Command {Get-WinEvent -FilterHashtable @{LogName="System";Id=7036}}


Days              : 0
Hours            : 0
Minutes          : 0
Seconds          : 7
Milliseconds      : 223
Ticks            : 72234851
TotalDays        : 8.36051516203704E-05
TotalHours        : 0.00200652363888889
TotalMinutes      : 0.120391418333333
TotalSeconds      : 7.2234851
TotalMilliseconds : 7223.4851

PS > Measure-Command {Get-WinEvent -FilterHashtable @{LogName="System";Id=7036;StartTime=[datetime]::Today}}


Days              : 0
Hours            : 0
Minutes          : 0
Seconds          : 0
Milliseconds      : 382
Ticks            : 3828785
TotalDays        : 4.43146412037037E-06
TotalHours        : 0.000106355138888889
TotalMinutes      : 0.00638130833333333
TotalSeconds      : 0.3828785
TotalMilliseconds : 382.8785


Iska 04-04-2012 18:55 1893483

Благодарю, ясно.

Сам сейчас проверить не мог, по причине: «… requires Windows Vista, Windows Server 2008 R2, or later versions of Windows».

Holden Coldfield 05-04-2012 10:28 1893801

Благодарю, Kazun! А еще такой вопрос, совсем ламерский: как это все сделать, куда это вставить? Вот батник я знаю, вставил в файл, переименовал в bat и запускай себе когда исполнится. А этот код тоже в txt вставить и в какое расширение переименовывать?

ferget 05-04-2012 12:01 1893846

*.ps1

Holden Coldfield 05-04-2012 13:54 1893947

А как сделать так чтобы комнада

Get-WinEvent -FilterHashtable @{LogName="System";Id=20271,20272;StartTime=[datetime]::Today} | Format-List * | out-file C:\log.txt

Не все сообщение события в текстовый файл отправлял. У меня вот так событие выглядит и в нем много лишнего.

Message : CoID={5C21D52C-A521-4AAE-9E08-77EFA425DC3F}: пользователь CONTORA\support подключился к пор
ту VPN3-127 05.04.2012 в 10:51 и отключился 05.04.2012 в 10:53. Пользователь был активен в течен
ие 1 мин. 52 сек. Отправлено: 383860 байт, получено: 162196 байт. Причина отключения: запрос пол
ьзователя. Использованный туннель: WAN Miniport (PPTP). Состояние карантина: "не поддерживает за
щиту доступа к сети".
Id : 20272
Version :
Qualifiers : 0
Level : 4
Task : 0
Opcode :
Keywords : 36028797018963968
RecordId : 32791
ProviderName : RemoteAccess
ProviderId :
LogName : System
ProcessId :
ThreadId :
MachineName : fileserver.contora.corp
UserId :
TimeCreated : 05.04.2012 10:53:28
ActivityId :
RelatedActivityId :
ContainerLog : system
MatchedQueryIds : {}
Bookmark : System.Diagnostics.Eventing.Reader.EventBookmark
LevelDisplayName : Сведения
OpcodeDisplayName : Сведения
TaskDisplayName :
KeywordsDisplayNames : {Классический}
Properties : {System.Diagnostics.Eventing.Reader.EventProperty, System.Diagnostics.Eventing.Reader.EventPrope
rty, System.Diagnostics.Eventing.Reader.EventProperty, System.Diagnostics.Eventing.Reader.EventP
roperty...}


Можно сделать так что в текстовый файл уходила только часть начинающаяся с Message?

Message : CoID={5C21D52C-A521-4AAE-9E08-77EFA425DC3F}: пользователь CONTORA\support подключился к пор
ту VPN3-127 05.04.2012 в 10:51 и отключился 05.04.2012 в 10:53. Пользователь был активен в течен
ие 1 мин. 52 сек. Отправлено: 383860 байт, получено: 162196 байт. Причина отключения: запрос пол
ьзователя. Использованный туннель: WAN Miniport (PPTP). Состояние карантина: "не поддерживает за
щиту доступа к сети".

Kazun 05-04-2012 14:05 1893949

Заменить Format-List * на Format-List Message

Holden Coldfield 05-04-2012 14:17 1893959

Спасибо всем вам большое ребята!)


Время: 09:54.

Время: 09:54.
© OSzone.net 2001-