SCCM-Logfiles mit der Powershell aufbereiten
24. September 2018Zur Konfiguration einer Active-Directory-Umgebung stehen den Systembetreuern unterschiedliche Werkzeuge zur Verfügung. Je nach Unternehmensgröße, eingesetzten Lizenzen oder persönlichen Vorlieben der Administratoren kommt beispielsweise „nur“ der Servermanager zu Einsatz, oder die Systemverantwortlichen nutzen Management-Tools von Drittanbietern. Auch die Windows-Powershell oder der SCCM (System Center Configuration Manager) stehen meist in der „Gunst“ der Administratoren. Bei letztgenannten können die Verantwortlichen zudem die Windows-Powershell einsetzten, um die Protokoll-Dateien aufzuarbeiten, zu filtern und mit möglichst geringem Aufwand zu analysieren. Dies ist beispielsweise mit dem Skript „ScriptToReadLogFile“ von „SHISHIR KUSHAWAHA“ möglich:
Herunterladen do { $logFileName=read-host "Enter complete path of log file" if(!((Test-Path $logFileName) -and (Test-Path $logFileName -PathType Leaf))) { write-host "Entered file name path is invalid or not available or does not contain file name in its path. Please try again." -foregroundcolor red -backgroundcolor black } else { $getLogContent=get-content $logFileName $parentPath=Split-Path $logFileName -Parent $fileName=Split-Path $logFileName -leaf $compactLogFileName=$fileName.Split(".") $date=(get-date).ticks $compactLogFileName=$compactLogFileName[0]+"_compact_"+"$date"+".log" $currentPath=get-location $compactLogFilePath="$currentPath\$compactLogFileName" if(Test-Path $compactLogFilePath) { write-host "Old $compactLogFilePath exist. Deleting it ... " -foregroundcolor green Remove-Item $compactLogFilePath } $getLogContent | %{if(($_ -match 'type="3"') -or ($_ -match "failed")){$_ | out-file -FilePath $compactLogFilePath -Append}} if(Test-Path $compactLogFilePath) { if(test-path "$currentpath\cmtrace.exe") { .\cmtrace.exe $compactLogFilePath } else { invoke-item $compactLogFilePath } } else { write-host "$fileName does not contains any error." -foregroundcolor green } } } while(!((Test-Path $logFileName) -and (Test-Path $logFileName -PathType Leaf))) .zip
Das Skript ist auf der entsprechenden Technet-Seite