PowerShell: Serversystemfehlerprotokoll auslesen

Bild Tipps & Tricks zu den Dynamics NAV Versionen
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.

PowerShell: Serversystemfehlerprotokoll auslesen

Beitragvon Kowa » 25. April 2016 14:02

Mit diesem Skript kann aus einem Server das Systemsystemfehlerprotokoll in eine Datei (hier im Freigabepfad "\\MyServer\MySwapFolder\Logs) exportiert werden.
Aus der von Windows erzeugten Datei werden dann die ersten 3 Zeilen entfernt, damit die Datei problemlos direkt per XMLport/Dataport weiterverarbeitet werden kann.

Die erzeugte Datei enthält die Daten, die hier in der Ereignisanzeige sonst manuell eingesehen werden können.
ServerErrorLog2.png


Die Spaltenformatierung kann man beim Cmdlet Get-Eventlog optional vorgeben (format-table -Property Timewritten,Index,Source,InstanceID,Message -Wrap -AutoSize) es gibt außer beim Zeitstempel aber keine feste Spaltenbreite, diese hängt von den aktuellen Fehlern ab. Über -Wrap -AutoSize verhindert man das sonst auftretende Abschneiden der Fehlermeldungen.

Die Anzahl der Rückschautage in der Datei (hier 7) wird über -After (Get-Date).AddDays(-7) eingestellt. Falls außer Fehlern (-EntryType -eq "Error" ) noch mehr ins Protokoll soll, kann man natürlich auch weitere Filter setzen (Information, FailureAudit, SuccessAudit, Warning) oder diese auch ganz weglassen. In diesen Fällen muss der EntryType bei der Spaltenauflistung nach Format-Table dann natürlich noch mit dazu genommen werden.

Bitte beachten, dass das Verwenden von Out-GridView bei Remotesessions nicht möglich ist. Bei lokalen Sessions kann man sich das Fehlerprotokoll dagegen statt in die Datei ins GridView holen (also statt Out-File -filepath … dann Out-GridView). Bei Out-GridView das Format-Table in der Pipeline weglassen, da hier die Fehlermeldung mitsamt der anderen Spalten in einer Zeile ohne Umbruch und Abschneiden untergebracht wird.

Das Passwort zur Anmeldung wird im Skript aus einer verschlĂĽsselten Datei ausgelesen, die Grundlagen dazu stehen hier.

Oben die erzeugte Rohdatei mit SpaltenĂĽberschriften, unten die Datei ohne SpaltenĂĽberschriften zur Weiterverarbeitung.
ServerErrorLog1.png

Code: Alles auswählen
$User = 'MyDomain\administrator'
$pwFile = "X:\MyEncryptedPasswordFile.txt"
$cred = New-Object -TypeName System.Management.Automation.PSCredential ` -ArgumentList $User, (Get-Content $pwFile | ConvertTo-SecureString -key (1..16))
Write-Host 'Exporting error log from MyServerName to server path \\MyServer\MySwapFolder\Logs'
$MySession = New-PSSession -computerName MyServerName -credential $cred
invoke-command -Session $MySession -scriptblock {New-item "\\MyServer\MySwapFolder\Logs" -itemtype directory -Force}
invoke-command -Session $MySession -scriptblock {if (test-path "\\MyServer\MySwapFolder\Logs\Errorlog.txt") {remove-item "\\MyServer\MySwapFolder\Logs\Errorlog.txt"}}
invoke-command -Session $MySession -scriptblock {if (test-path "\\MyServer\MySwapFolder\Logs\ErrorlogRaw.txt") {remove-item "\\MyServer\MySwapFolder\Logs\ErrorlogRaw.txt"}}
invoke-command -Session $MySession -scriptblock {get-eventlog -logname system -After (Get-Date).AddDays(-7) | where-object { $_.EntryType -eq "Error" } | format-table -Property Timewritten,Index,Source,InstanceID,Message -Wrap -AutoSize | out-file -filepath "\\MyServer\MySwapFolder\Logs\ErrorlogRaw.txt" -noclobber}
invoke-command -Session $MySession -scriptblock {if (Test-path "\\MyServer\MySwapFolder\Logs\ErrorlogRaw.txt") {(Get-Content "\\MyServer\MySwapFolder\Logs\ErrorlogRaw.txt" | Select-Object -Skip 3) | Set-Content "\\MyServer\MySwapFolder\Logs\Errorlog.txt"}}
Remove-PSSession $MySession
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01

ZurĂĽck zu NAV Tipps & Tricks

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast