Log dit arbejde i Powershell

Log dit arbejde i Powershell

Det er altid godt at lave en log når man arbejder i Powershell, men hvordan laver man en log i Powershell, her vil jeg lave en Funktion som laver en logfil efter dato udfra Funktionen get-date  samt at lave en generel log, log over hvad der sker og en log med fejl.

Log dit arbejde i Powershell

Først skal alle definitioner være i orden, og vil man lave en log som har udvidet beskrivelse sættes EnabledDetailedLogging til $true.

Vælg filnavn til din log, kan være hvad som helst, men noget sigende er at foretrække.

Derefter laves funktionen LOG husk evt. en -Append da man altid kan få brug for historisk data.

$enableDetailedLogging = $False
$logfile="C:\logs\<LOGFILNAVN>$((Get-Date).tostring("yyMM"))_log.log"
$aktfile="C:\logs\<LOGFILNAVN>$((Get-Date).tostring("yyMM"))_akt.log"
$errfile="C:\logs\<LOGFILNAVN>$((Get-Date).tostring("yyMM"))_err.log"

function log($txt, $file, $level)
{
    if (($file -eq $logfile) -and -not (($enableDetailedLogging -eq $false) -and ($level -eq "detailed"))) {
        write "$((Get-Date).tostring("yyyy-MM-dd-HH:mm:ss")) $txt" | out-file -FilePath $logfile -Append 
    }

    if ($file -eq $actfile) {
        write "$((Get-Date).tostring("yyyy-MM-dd-HH:mm:ss")) $txt" | out-file -FilePath $actfile -Append 
    }

    if ($file -eq $errfile) {
        write "$((Get-Date).tostring("yyyy-MM-dd-HH:mm:ss")) $txt" | out-file -FilePath $errfile -Append
    } 
}

Hvordan bruger man log funktionen.

Når alt er forberedt kan man inkludere det  i script ganske simpelt ved følgende eksempel.

log "******************* START *****************" $logfile
log "gør et eller andet.. " $logfile
foreach ($grps in $grp) 
{
        If (Get-ADGroup -Filter {SamAccountName -eq $grps})
          {
        .....
        Log "Næste gruppe.. $grps" $aktfile
           }
        Else
          {
         log "$grps findes ikke-- " $errfile
           }
}

Som man kan se er det nemt at få et godt overblik over det man laver i sit script.

Husk altid at log dit arbejde i powershell, det fremmer kommunikationen og gør det meget nemmere at fejlsøge.

Ser herefter.

Skriv en kommentar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.