2016-11-21 5 views
0

Also habe ich diesen Code unten, der die angegebenen EventIDs mit der Verwendung von append sammelt. Das Problem ist, dass es nur in einer einzigen Datei gespeichert wird. Ich möchte die Sammlung in einer täglichen Datei speichern, damit ich einen täglichen Bericht erstellen kann. Eine kleine Hilfe bitte?Get-EventLog mit 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

Sie sagen, dass alle, die Sie suchen ist das heutige Datum in Ihrer Ausgabe-Dateinamen zu integrieren? Wenn ja, in welchem ​​Format? Und wenn das alles ist, wonach Sie suchen: Der gesamte Code in Ihrer Frage ist für Ihr Problem nebensächlich. – mklement0

Antwort

0

einfach fügen Sie einen get-Start mit einigen Parametern ein Datum zu erhalten, die Dateinamen freundlich (keine „/“ zum Beispiel) sind und in einer Variablen speichern. Ersetzen Sie dann AccountAudit in der letzten Zeile mit der Variablen.

+0

ist 'Get-Start' ein gültiger Cmdlet-Name? kann es nicht finden. – Moerwald

+0

Woops, ich habe get-date –

1

Export-Csv Hat eine -Append Parameter als auch, können Sie Ihren Code verkürzen:

$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

Danke. Aber das löst das Problem nicht. :( – lapsantos