lexura
Goto Top

Powershell Script - Ausgabe Tasks eines Servers in eine HTML Seite

Powershell Neuling !!!!

Hallo, hatte vor kurzem ja schon die Frage nach einem Script zum Auslesen der Tasks gefragt. Das habe ich soweit hinbekommen. Ich kann das Ergebnis auch "lesbar" in eine .txt Datei ausgeben. Mein Problem ist es jetzt dieses auch "lesbar" in eine HTML Seite zu bekommen. Die reine Ausgabe nach html klappt, aber lesbar und hübsch ist was anderes.

Hier mal mein Code bislang:

$Datum = Get-Date -Format " dd.MM.yyyy 'um' HH:mm:ss 'Uhr'"  
$Ueberschrift = "<h1 ALIGN=CENTER>TASK ÜBERSICHT</h1>"  
$Erstell_Dat = "<h3 ALIGN=CENTER>Erstellungsdatum:$Datum</h3>"  
$TaskS = "<h1 ALIGN=CENTER>Alle eingetragenen Tasks</h1>"  

$sched = New-Object -Com "Schedule.Service"  
$sched.Connect()
$out = @()
$sched.GetFolder("\").GetTasks(0) | % {  
    $xml = [xml]$_.xml
    $out += New-Object psobject -Property @{
                'Name' = $_.name  
                'Pfad' = $_.path  
                'Status' = $_.state  
                'Enabled' = $_.enabled  
                'LastRunTime' = $_.lastruntime  
                'LastTaskResult' = $_.lasttaskresult  
                'NumberOfMissedRuns' = $_.numberofmissedruns  
                'NextRunTime' = $_.nextruntime  
                'UserId' = ([xml]$_.xml).Task.Principals.Principal.UserID  
                'Description' = ([xml]$_.xml).Task.RegistrationInfo.Description  
    }
}

$out | fl Name,Pfad,Status,Enabled,LastRunTime,NextRuNTime,LastTaskResult,NumberOfMissedRuns,userID,Description |

out-file 'C:\test.txt'  

$Ergebnis = Get-Content "C:\test.txt"  

ConvertTo-Html -Title "Eventübersicht" -body "$Ueberschrift $Erstell_Dat <br/> <hr NOSHADE SIZE=6 WIDTH=80% COLOR=#0033CC /> <br/>  
                                                                  $Tasks <br/> $Ergebnis" |  

out-file 'C:\test.html'  

An meinem Code gibt es sicherlich noch Verbesserungen. Das Ergebnis sollte jeden gefundenen Task (samt Metadaten) einzelnd in der html darstellen (so wie sie auch in der txt zu lesen sind).

Besten Dank im Voraus an euch Profis.

Gruß Ralf

Screenshots:

acf331d19d3b5eb4ab98ae4b291465fa

e6a837fed7158e01604d03e1c37a1003

Content-Key: 261696

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

Printed on: April 25, 2024 at 12:04 o'clock

Member: TlBERlUS
TlBERlUS Jan 30, 2015 at 08:38:45 (UTC)
Goto Top
Member: lexura
lexura Jan 30, 2015 at 09:35:40 (UTC)
Goto Top
Hallo Tiberus,

ich muss ehrlich gestehen, das ich bislang noch nicht viel mit Programmieren zu tun hatte. Deine Tips habe ich gelesen und mich auch daran versucht.
Leider ohne auch nur ansatzweise eine Lösung hinzubekommen.
Ich habe schon ein ähnliches Projekt bewerkstelligt, in dem wir alle Events von unseren Servern auslesen und jeweils in eigene Variablen schreiben. Da war dann die Ausgabe in HTML für mich einfacher zu lösen. Da ich bei der Task Aufgabe aber nicht jeden Task in eine eigene variable schreibe, kann ich den folgenden Code nicht einfach übernehmen.

Kann mir hier einer helfen mein Script so anzupassen, dass ich entweder jeden Task in eine Variable schreibe oder doch über das auslesen der erstellten Textdatei ein lesbares Ergebnis in HTML hinbekomme ???

$Datum = Get-Date -Format " dd.MM.yyyy 'um' HH:mm:ss 'Uhr'"  

$Ueberschrift = "<h1 ALIGN=CENTER>ALLE SERVER-EVENTS DER LETZTEN 3 TAGE</h1>"  
$Erstell_Dat = "<h3 ALIGN=CENTER>Erstellungsdatum:$Datum</h3>"  

$P_SERVER = "<h1 ALIGN=CENTER>PRODUKTIONS - SERVER (virtuell)</h1>"  
$D_SERVER = "<h1 ALIGN=CENTER>ENTWICKLUNGS - SERVER (virtuell)</h1>"  
$S_SERVER = "<h1 ALIGN=CENTER>TEST - SERVER (virtuell)</h1>"  
$K_SERVER = "<h1 ALIGN=CENTER>HYPER-V KNOTEN (physikalisch)</h1>"  
$M_SERVER = "<h1 ALIGN=CENTER>MANAGEMENT - SERVER (physikalisch)</h1>"  

ConvertTo-Html -Title "Eventübersicht" -body "$Ueberschrift $Erstell_Dat <br/> <hr NOSHADE SIZE=6 WIDTH=80% COLOR=#0033CC /> <br/>   
                                              $P_SERVER <br/> $SRV_01 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_02 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_03 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_04 <br/> <hr NOSHADE SIZE=8 WIDTH=80% COLOR=#0033CC /> <br/> <br/> <br/> 
                                              $D_SERVER <br/> $SRV_05 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_06 <br/> <hr NOSHADE SIZE=8 WIDTH=80% COLOR=#0033CC /> <br/> <br/> 
                                              $S_SERVER <br/> $SRV_07 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_08 <br/> <hr NOSHADE SIZE=8 WIDTH=80% COLOR=#0033CC /> <br/> <br/> 
                                              $K_SERVER <br/> $SRV_09 <br/> <hr NOSHADE SIZE=3 WIDTH=80% COLOR=#0033CC /> <br/> $SRV_10 <br/> <hr NOSHADE SIZE=8 WIDTH=80% COLOR=#0033CC /> <br/> <br/> 
                                              $M_SERVER <br/> $SRV_11" |  

Out-File C:\Status-Event.html
Member: colinardo
Solution colinardo Jan 30, 2015 updated at 11:52:25 (UTC)
Goto Top
Hallo Lexura,
guckst du hier:
$sched = New-Object -Com "Schedule.Service"  
$sched.Connect()
$out = @()
$sched.GetFolder("\").GetTasks(0) | % {  
    $xml = [xml]$_.xml
    $out += New-Object psobject -Property @{
                'Name' = $_.name  
                'Pfad' = $_.path  
                'Status' = $_.state  
                'Enabled' = $_.enabled  
                'LastRunTime' = $_.lastruntime  
                'LastTaskResult' = $_.lasttaskresult  
                'NumberOfMissedRuns' = $_.numberofmissedruns  
                'NextRunTime' = $_.nextruntime  
                'UserId' = ([xml]$_.xml).Task.Principals.Principal.UserID  
                'Description' = ([xml]$_.xml).Task.RegistrationInfo.Description  
    }
}

$tasks = $out | fl Name,Pfad,Status,Enabled,LastRunTime,NextRuNTime,LastTaskResult,NumberOfMissedRuns,userID,Description | out-string

$html = @"  
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Geplante Tasks</title>
</head>
<style type="text/css">  
    .center{text-align:center}
</style>
<body>
    <div class="center">  
        <h1>TASK ÜBERSICHT</h1>
        <h3>Erstellungsdatum:$(Get-Date -Format " dd.MM.yyyy 'um' HH:mm:ss 'Uhr'")</h3>  
        <h1>Alle eingetragenen Tasks</h1>
        <hr NOSHADE SIZE=6 WIDTH=80% COLOR=#0033CC />
    </div>
    <div>
        <pre>
            $tasks
        </pre>
    </div>
</body>
</html>
"@ | out-file 'C:\Status-Event.html'  
Grüße Uwe
Member: lexura
lexura Jan 30, 2015 at 11:48:06 (UTC)
Goto Top
DANKE Uwe, das ist perfekt !!!

Gruß Ralf