Я работаю над сценарием PS, чтобы собирать определенные идентификаторы событий и выкладывать их обратно каждый час или около того.Я делаю это, потому что хочу выложить его в электронную почту для удобства чтения.
Моя проблема сейчас заключается в том, что скрипт будет работать до определенного момента и зависать.Если я удаляю фильтры даты, это работает хорошо.Как только я заново их добавляю (либо через переменные, либо через жестко запрограммированный код), он снова начинает зависать.Однако мне нужны фильтры даты, потому что в противном случае я получаю все, когда ищу почасовые куски.
Нужен совет, поскольку я хотел бы использовать переменные для разовых или модификаций!Я также хотел бы использовать ответвления для отчетности других сторон.
$filedate = (get-date).ToString("MM_dd_yy-hh_mm")
$filename = "bad_logins_DC01 " + $filedate + "_log.txt"
$after = (get-date).addhours(-1)
$before = (get-date)
$eventlog = Get-EventLog -ComputerName DC01 -LogName Security -After $after -Before $before
$eventlog | ?{$_.EventID -eq 4771 -or $_.EventID -eq 4776 } | Select @{Name="Event ID";Expression={$_.InstanceID}},@{Name="UserName";Expression={$_.ReplacementStrings[0]}},@{Name="Failure Code";Expression={$_.ReplacementStrings[4]}},@{Name="Host";Expression={$_.ReplacementStrings[6]}},@{Name="Port";Expression={$_.ReplacementStrings[7]}}, @{Name="Time";Expression={$_.TimeGenerated}} | ft | Out-File $filename -append -noclobber
$to = itsupport@ourdomain.com
$from = itsupport@ourdomain.com
$subject = $filename
$smtp = exchange.ourdomain.com
$contents = cat $filename
$body = $contents
Send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -Attachments $filename