2016-11-21 2 views
0

Итак, у меня есть этот код ниже, который собирает указанные идентификаторы EventID с использованием append. Проблема заключается в том, что он сохраняет только один файл. Что я хочу сделать, так это сохранить коллекцию в ежедневный файл, чтобы я мог делать ежедневный отчет. Немного помогите пожалуйста?Get-EventLog with Append

$endtime = Get-Date 
$starttime = (Get-Date).AddHours(-3) 
$domain = "ComputerName" 

$event = get-eventlog security -ComputerName $domain -after $starttime -before $endtime | where-object {($_.EventID -eq 4724) -or ($_.EventID -eq 4723) -or ($_.EventID -eq 4720)} 
$event | select MachineName,EventID,TimeGenerated,Message | export-csv -path "E:\EventLogs\temp.csv" 
get-content "E:\EventLogs\temp.csv" | out-File -filepath "E:\EventLogs\AccountAudit.csv" -append -enc ASCII -width 500 
+0

Вы говорите, что все, что вы ищете, чтобы включить текущую дату в выходном имени файла? Если да, то в каком формате? И если это все, что вы ищете: весь код в вашем вопросе связан с вашей проблемой. – mklement0

ответ

0

Просто добавьте ПОЛУЧИТЬ старт с некоторыми параметрами, чтобы получить дату, которая имя_файла дружественный (нет «/», например) и сохранить его в переменной. Затем замените AccountAudit на последней строке переменной.

+0

- это 'get-start' корректное имя командлета? не может найти его. – Moerwald

+0

Woops, i ment get-date –

1

Export-Csv Имеет -Append параметр, а также, вы можете сократить ваш код:

$event = get-eventlog security -ComputerName $domain -after $starttime -before $endtime | 
Where-object {($_.EventID -eq 4724) -or ($_.EventID -eq 4723) -or ($_.EventID -eq 4720)} 

$event | select MachineName,EventID,TimeGenerated,Message | 
Export-Csv -path "E:\EventLogs\AccountAudit.csv" -Append -Encoding ASCII 
+0

Спасибо. Но это не решает проблему. :( – lapsantos