Email windows服务状态在HTML body - powershell中



我试图通过电子邮件发送HTML中windows服务状态的输出在电子邮件中发送文本输出工作得很好,所以问题在于我试图将其转换为HTML的这一部分。

$servicestatusALL = Get-Content $Logfile | select-object -skip 1 
$Style = @"
<style>
BODY{font-family:Calibri;font-size:12pt;}
TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;color:black;background-color:#0BC68D;text-align:center;}
TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;text-align:center;}
</style>
"@
$servicestatusALL | ConvertTo-Html -property 'Displayname','Status' -Head $Style | foreach {if($_ -like "*<td>Running</td>*"){$_ -replace "<tr>", "<tr bgcolor=#089437>"} elseif($_ -like "*<td>Stopped</td>*" -or "*<td>Stopping</td>*" -or "*<td>Pending</td>*" -or "*<td>Starting</td>*"){$_ -replace "<tr>", "<tr bgcolor=#C60B1C>"}  else{$_}} |out-file $reportpath
$body = [System.IO.File]::ReadAllText("$reportpath")

美元示例日志文件

DisplayName  Status
-----------  ------
Redis       Running
Apache2.4   Running
Appservice1 Running
Appservice2 Stopped
Appservice3 Running
Appservice4 Running

没有错误但是这部分只返回null

$servicestatusALL | ConvertTo-Html -property 'Displayname','Status'美元——头样式

如果我不理解请求,我认为这是足够的改变$servicestatusALL变量。而不是使用get-content,我将执行get-service.我的建议如下:

$servicestatusALL = Get-Service | select displayname,status
$Style = @"
<style>
BODY{font-family:Calibri;font-size:12pt;}
TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;color:black;background-color:#0BC68D;text-align:center;}
TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;text-align:center;}
</style>
"@
$servicestatusALL | ConvertTo-Html -property 'Displayname','Status' -Head $Style | foreach {if($_ -like "*<td>Running</td>*"){$_ -replace "<tr>", "<tr bgcolor=#089437>"} elseif($_ -like "*<td>Stopped</td>*" -or "*<td>Stopping</td>*" -or "*<td>Pending</td>*" -or "*<td>Starting</td>*"){$_ -replace "<tr>", "<tr bgcolor=#C60B1C>"}  else{$_}} |out-file $reportpath
$body = [System.IO.File]::ReadAllText("$reportpath")

最新更新