私のスクリプトは、HTMLに変換して電子メールでレポートを送信するよりも、サーバーから情報を引き出しています。 スニペット:powershell ConvertTo-Htmlクラスを追加
$sourceFile = "log.log"
$targetFile = "log.html"
$file = Get-Content $sourceFile
$fileLine = @()
foreach ($Line in $file) {
$MyObject = New-Object -TypeName PSObject
Add-Member -InputObject $MyObject -Type NoteProperty -Name Load -Value $Line
$fileLine += $MyObject
}
$fileLine | ConvertTo-Html -Property Load -head '<style> .tdclass{color:red;} </style>' | Out-File $target
現在のHTMLレポートの抜粋:
<table>
<colgroup><col/></colgroup>
<tr><th>Load on servers</th></tr>
<tr><td>Server1 load is 2442</td></tr>
<tr><td>Server2 load is 6126</td></tr>
<tr><td>Server3 load is 6443</td></tr>
<tr><td> </td></tr>
<tr><td>Higher than 4000:</td></tr>
<tr><td>6126</td></tr>
<tr><td>6443</td></tr>
</table>
これは、TRとTDを持つテーブルを含むHTMLレポートを生成します。 でtdを生成させる方法はありますか?そのため、クラス名をスタイルで-headプロパティに挿入し、4000より高い:tdsの赤色にすることができますか?
私は頭の上からそれをどうやって行うのか正確にはわかりませんが、出力ファイルにパイプするのではなく、変数に 'ConvertTo-HTML'の出力を保存したいと思うでしょう。次に、タグ名( 'td')でプロパティをクエリし、" * higher * "のような内部テキストを持つものを選択して、外側のhtmlにクラス名を追加したいと思うでしょう。 –
'$ out.ParsedHTML.getElementsByTagName(" td ")| (where {$ _。innerText-like "Higher"})。outerHTML'しかし、その値を変更する方法がわかりません。 –
ブライスマクドナルド、これは確かに役に立つかもしれません。 – catalin