2011-04-13 6 views
1

失敗した/成功したバックアップジョブの一覧を表示する電子メールレポートを作成しようとしています。私はhtmlファイルの内容として、ヘッダー名を複数回取得していますPowershell:htmlレポートの一番上にテーブルヘッダーを表示します。

$servers = @(gc config\dbs.txt) 
foreach($server in $servers) 
{ 
    $dt = new-object "System.Data.DataTable" 
    $cn = new-object System.Data.SqlClient.SqlConnection "server=$server;database=msdb;Integrated Security=sspi" 
    $cn.Open() 
    $sql = $cn.CreateCommand() 
    $sql.CommandText = $(get-content config\query.sql) 
    $rdr = $sql.ExecuteReader() 
    $dt.Load($rdr) 
    $cn.Close() 
    $dt |ft Server,RunStatus,JobName >> $log 
    $dt | ConvertTo-Html Server,JobName,RunStatus -head $a | ac logs\backups\report.htm  
} 

Server  JobName  RunStatus 
srv1  job1  success 
srv1  job2  success 
Server  JobName  RunStatus 
srv2  job1  fail 
srv2  job2  success 
srv2  job3  success 
Server  JobName  RunStatus 
srv3  job1  fail 
srv3  job2  success 
srv3  job3  success 
Server  JobName  RunStatus 
srv4  job1  fail 
srv4  job2  success 
srv4  job3  success 
Server  JobName  RunStatus 
srv5  job1  fail 

ごとのforeach列挙した後に追加された:

は、ここに私のスクリプトです。ヘッダー[Server JobName RunStatus]が一番上に一度だけ表示されるようにスクリプトを変更できますか?

また、添付ファイルではなく、インラインコンテンツとしてreport.htmをメールに表示できるかどうかを知りたいと思います。これは可能ですか?

ありがとうございます。
steeluser

答えて

5

各列挙でConvertTo-HTMLを使用しているため、表のヘッダーは列挙ごとに表示されます。 format-tableについても同様です。これを試してみてください:2つ目の質問... [ここを見て](http://poshcode.org/950)については

 
$dts = @() 

@(gc config\dbs.txt) | % { 
    $dt = new-object "System.Data.DataTable" 
    $cn = new-object System.Data.SqlClient.SqlConnection "server=$server;database=msdb;Integrated Security=sspi" 
    $cn.Open() 
    $sql = $cn.CreateCommand() 
    $sql.CommandText = $(get-content config\query.sql) 
    $rdr = $sql.ExecuteReader() 
    $dt.Load($rdr) 
    $cn.Close() 
    $dts += $dt 
} 

$dts |ft Server,RunStatus,JobName >> $log 
$dts | ConvertTo-Html Server,JobName,RunStatus -head $a | ac logs\backups\report.htm  
+1

を!乾杯! –

+0

ありがとうempo !! これはうまくいきました。以前は$ dts + = $ dtを試しましたが、ループ自体でConvertToHtmlをやっていたので失敗しました。$ dtから最後の結果セットしか得られませんでした。私が間違っていることを私に起こす..私は仕事の長い時間があなたにそれをすると思います..乾杯:-) – Animesh

+0

私の2番目の質問への答えは私にとっては複雑すぎるようです..私は通り抜けるために時間を取る必要があると思いますそれは..私に出発点を与えてくれてありがとう.. :-)素晴らしい一日を。 – Animesh

関連する問題