Używam Powershell 4 i próbuję parsować zarchiwizowany dziennik zdarzeń do pliku csv, który zawiera wszystkie dane i ma powiązane z nimi nagłówki. Najbliżej byłem w stanie się to za pomocą następującego polecenia:Powershell parse get-winevent do csv z nagłówkami zawierającymi wszystkie obiekty potomne
Get-WinEvent -Path .\Security.evtx |Select-Object TimeCreated, ProviderName, Id, Message, Level, Keyword, UserID, Data, Subject, SubjectUserSid, SubjectUserName, SubjectLogonId, ComputerName | Export-Csv .\Logging.csv
To daje mi wszystkie informacje nagłówka dla wszystkich pól w pliku csv ale jedyne pól zawierających dane są TimeCreated, ProviderName, ID, poziom, & Wiadomość. Próbuję uzyskać brakujące dane w kolumnach również, ale nie powiodło się. Co ja tu robię źle?
Miło widzieć, że znalazłeś rozwiązanie. Czy możesz skopiować to do odpowiedzi na własne pytanie i zaznaczyć jako zaakceptowaną odpowiedź; w ten sposób to pytanie zostanie oznaczone jako rozwiązane. Z góry dziękuję. – JohnLBevan
Przyjąłbym '| Select-Object -Property * 'zrobiłby sztuczkę –
' | Select-Object -Property * 'obiekt nie zrobiłby tego, ponieważ możesz również potokować dane obiekty (które zawierają właściwości z wieloma liniami, w tym znaki nowego wiersza jako' Powrót karetki' i 'Podawanie linii') do innego obiektu, który * nie * obsługuje wiele pól liniowych (myśl o cmdletach takich jak '| Out-GridView',' | ConvertTo-JSON' lub prawie każda inna funkcja lub cmdlet). ** Pliki CSV ** po prostu nie obsługują pól wielowierszowych z powodu ich formatu zwykłego tekstu. – iRon