#################################### # # SCCM Backup Checking Script # Copyright 2012 Ryan McLean (ninet -DOTnospam- org -ATnospam- gmail -DOTnospam- com) # # Version: 0.1 # # Notes: # Run with Credentials that have permissions to read log file share / path to log files # #################################### ### VARIABLES ### $svrlist = @( # List of all primary servers "Site1", # CEN "Site2", # PR1 "Site3", # PR2 "Site4", # PR3 ) $days = -1 $fpath = "\d$\SW\Microsoft Configuration Manager\Logs\" # Change to path of SCCM log files $flog = "smsbkup.log" # Name of log to check $orfname = "Results.htm" # Name of Report HTML document $loutdir = "C:\" # Change to location to store smsbkup.log fragments $routdir = $loutdir # Change to location to store reports ##### MAIN ##### $cdate = get-date $dt = $cdate $cdate = $cdate.adddays($days) | get-date -format "ddd MMM dd" $dt = $dt.adddays($days) | get-date -format "yyyyMMdd" $filter = ("*" + $cdate + "*") $ares = @() $orfname = $dt + "-" + $orfname foreach ($svr in $svrlist) { $ores = "" | select Server, Status $ores.Server = $svr $connstr = "\\" + $svr + $fpath + $flog try { $content = get-content $connstr -ErrorAction "Stop" | where {$_ -like $filter} $ofname = $loutdir + $dt + "-" + $svr + "-smsbkup.log" $content | out-file $ofname if ($content | where {$_ -like "Backup task completed successfully*"}) { $ores.Status = "Successful" } else { $ores.Status = "Failed" } } catch { $ores.Status = "Unable to retrieve log" continue } finally { $ares += $ores } } ### RESULTS OUTPUT ### $a = "" $b = "

SCCM Server Backup Status " + $dt + "

" $ares | Select-Object Server, Status | ConvertTo-HTML -head $a -body $b | Out-File ($routdir + $orfname)