SCCM-Logfiles mit der Powershell aufbereiten

24. September 2018

Zur 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

Florian Huttenloher

Lesen Sie auch