michi-ffm
Goto Top

HTML in Powershell

Hallo Zusammen,

vielleicht kann mir jemand behilflich sein?
Wie bekomme ich das hin, das in der eMail folgendes passiert:

IF (Ok dann Grüner Text) if (Fail dann Roter Text)

Hier der Code:
$ResultList = Foreach($File in $FilesToCheck){
    $Result = Get-Item -Path $File | Select-Object -Property FullName,@{'Name'='Status';Expression={If((Get-Date $_.LastWriteTime).Date -eq (Get-Date).Date ){'OK'}Else{'Failure'}}}  
    [PSCustomObject]@{
        'Path' = $Result.FullName  
        'Status' = $Result.Status  
    }
}


$Body = $ResultList | ConvertTo-Html -Fragment -AS Table

Content-ID: 336255

Url: https://administrator.de/contentid/336255

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

132895
132895 27.04.2017 aktualisiert um 09:50:41 Uhr
Goto Top
$body = @"  
<style type="text/css">  
.ok td{color:green}
.error td{color:red}
</style>
<table>
    <tr><th>Path</th><th>Status</th></tr>
    $($filesToCheck |%{
         if ($_.LastwriteTime.Date -eq (get-date).Date){
             "<tr class=`"ok`"><td>$($_.Fullname)</td><td>OK</td></tr>"  
         }else{
             "<tr class=`"error`"><td>$($_.Fullname)</td><td>Failure</td></tr>"  
         }
    })
</table>
"@  
michi-ffm
michi-ffm 27.04.2017 um 10:41:53 Uhr
Goto Top
Vielen Dank sieht sehr vielversprechend aus face-smile
Jedoch wenn ich das so 1:1 übernehme ist mein Outpute Failure oder mach hier einen Fehler?

$ResultList = Foreach($File in $FilesToCheck){
    $Result = Get-Item -Path $File | Select-Object -Property FullName,@{'Name'='Status';Expression={If((Get-Date $_.LastWriteTime).Date -eq (Get-Date).Date ){'OK'}Else{'Failure'}}}  
    [PSCustomObject]@{
        'Path' = $Result.FullName  
        'Status' = $Result.Status  
    }

}
$Body = @"  
<style type="text/css">  
.ok td{color:green}
.error td{color:red}
</style>
<table>
    <tr><th>Path</th><th>Status</th></tr>
    $($FilesToCheck |%{
         if ($_.LastwriteTime.Date -eq (get-date).Date){
             "<tr class=`"OK`"><td>$($_.FullName)</td><td>OK</td></tr>"  
         }else{
             "<tr class=`"error`"><td>$($_.FullName)</td><td>Failure</td></tr>"  
         }
    })
</table>
"@  
132895
132895 27.04.2017 aktualisiert um 10:45:27 Uhr
Goto Top
1:1 du bist gut face-big-smile, nee, mein Code ist alles was du brauchst! Dein Ding oben brauchst du nicht ..Du musst nur die Variable $filestocheck mit den Dateien füllen, alles andere ist in meinem Code schon drin.
michi-ffm
michi-ffm 27.04.2017 um 11:10:13 Uhr
Goto Top
autsch face-smile

Daten sind gefüllt, jedoch zeigt er mir Fail an obwohl die Dateien den aktuellen Datum haben ^^
132895
132895 27.04.2017 aktualisiert um 11:30:45 Uhr
Goto Top
Nope, geht einwandfrei, du hast es falsch modifiziert ...
michi-ffm
michi-ffm 27.04.2017 um 11:36:41 Uhr
Goto Top
hm

Hier müsste doch gehen:
$FilesToCheck = Get-Content -Path "$PSScriptRoot\FileList.txt"  


$Body = @"  
<style type="text/css">  
.ok td{color:green}
.error td{color:red}
</style>
<table>
    <tr><th>Path</th><th>Status</th></tr>
    $($FilesToCheck |%{
         if ($_.LastwriteTime.Date -eq (get-date).Date){
             "<tr class=`"OK`"><td>$($_.FullName)</td><td>OK</td></tr>"  
         }else{
             "<tr class=`"error`"><td>$($_.FullName)</td><td>Failure</td></tr>"  
         }
    })
</table>
"@  
132895
Lösung 132895 27.04.2017 aktualisiert um 11:39:10 Uhr
Goto Top
Falsch!!!
In $filestocheck gehört eine Objekt-Auflistung von Get-ChildItem!!
michi-ffm
michi-ffm 27.04.2017 um 11:46:30 Uhr
Goto Top
Vielen Dank gerne würde ich dir für Get-ChildItem ein Bier ausgeben ^^