无法绑定和写入通过PowerShell提取的内容

时间:2017-11-03 09:44:39

标签: html sql powershell

我有这个PowerShell脚本来获取SQL失败的作业状态,当我运行它时,我可以看到它正在获取信息但无法绑定并将输出写入定义的HTML格式。

尝试在我的能力下玩它,但我无法弄清楚哪里出错了。任何帮助将不胜感激。

function writeHtmlHeader {
    Param($fileName)
    $date = ( Get-Date ).ToString('yyyy/MM/dd')
    Add-Content $fileName "<html>"
    Add-Content $fileName "<head>"
    Add-Content $fileName "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1?>"
    Add-Content $fileName '<title>SQL Job Failure Report </title>'
    Add-Content $fileName '<STYLE TYPE="text/css">'
    Add-Content $fileName "<!-"
    Add-Content $fileName "td {"
    Add-Content $fileName "font-family: Tahoma;"
    Add-Content $fileName "font-size: 11px;"
    Add-Content $fileName "border-top: 1px solid #999999;"
    Add-Content $fileName "border-right: 1px solid #999999;"
    Add-Content $fileName "border-bottom: 1px solid #999999;"
    Add-Content $fileName "border-left: 1px solid #999999;"
    Add-Content $fileName "padding-top: 0px;"
    Add-Content $fileName "padding-right: 0px;"
    Add-Content $fileName "padding-bottom: 0px;"
    Add-Content $fileName "padding-left: 0px;"
    Add-Content $fileName "}"
    Add-Content $fileName "body {"
    Add-Content $fileName "margin-left: 5px;"
    Add-Content $fileName "margin-top: 5px;"
    Add-Content $fileName "margin-right: 0px;"
    Add-Content $fileName "margin-bottom: 10px;"
    Add-Content $fileName ""
    Add-Content $fileName "table {"
    Add-Content $fileName "border: thin solid #000000;"
    Add-Content $fileName "}"
    Add-Content $fileName "->"
    Add-Content $fileName "</style>"
    Add-Content $fileName "</head>"
    Add-Content $fileName "<body>"
    Add-Content $fileName "<table width='100%'>"
    Add-Content $fileName "<tr bgcolor='#CCCCCC'>"
    Add-Content $fileName "<td colspan='4? height='25' align='center'>"
    Add-Content $fileName "<font face='tahoma' color='#003399? size='4?><strong>SQL Job Status - $date</strong></font>"
    Add-Content $fileName "</td>"
    Add-Content $fileName "</tr>"
    Add-Content $fileName "</table>"
}

function writeTableHeader {
    Param($fileName)
    Add-Content $fileName "<tr bgcolor=#CCCCCC>"
    Add-Content $fileName "<td width='10%' align='LEFT'>ServerName</td>"
    Add-Content $fileName "<td width='50%' align='left'>JobName</td>"
    Add-Content $fileName "<td width='10%' align='left'>JobLastRun Outcome</td>"
    Add-Content $fileName "<td width='10%' align='left'>JobLastRunStatus</td>"
    Add-Content $fileName "</tr>"
}

function writeHtmlFooter {
    Param($fileName)
    Add-Content $fileName "</body>"
    Add-Content $fileName "</html>"
}

function writeInfo {
    Param($filename,$Servername,$name,$outcome,$Status)
    Add-Content $fileName "<tr>"
    Add-Content $fileName "<td align=left ><b>$servername</td>"
    Add-Content $fileName "<td align=left ><b>$name</td>"
    Add-Content $fileName "<td align=left ><b>$Outcome</td>"
    Add-Content $fileName "<td align=left ><b>$Status</td>"
    Add-Content $fileName "</tr>"
}

writeHtmlHeader $FailedJobFileName
Add-Content $FailedJobFileName "<table width='100%'><tbody>"
Add-Content $FailedJobFileName "<tr bgcolor='#CCCCCC'>"
Add-Content $FailedJobFileName "<td width='100%' align='center' colSpan=4><font face='tahoma' color='#003399? size='2?><strong> SQL Job Details</strong></font></td>"
Add-Content $FailedJobFileName "</tr>"

writeTableHeader $FailedJobFileName
foreach ($sqlserver in $sqlservers) {
    $srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver;
    foreach ($job in $srv.Jobserver.Jobs) {
        $jobName = $job.Name;
        $jobEnabled = $job.IsEnabled;
        $jobLastRunOutcome = $job.LastRunOutcome;
        $jobLastRun = $job.LastRunDate;

        if ($jobEnabled = "true" -and $jobLastRun) {
            $datediff = New-TimeSpan $jobLastRun $today
            $days = $datediff.days
            if ($days -lt 1 ) {
                if ($jobLastRunOutcome -eq "Failed") {
                    Write-Host $sqlserver $jobName $jobLastRunOutcome $JobLastRun
                    writeInfo $ServiceFileName $sqlserver $jobName $jobLastRunOutcome $JobLastRun
                }
            }
        }
    }
}

0 个答案:

没有答案