2016-07-19 10 views
1

Ich habe ein Skript, das aus einer MySQL-Datenbank mit einem DataAdapter liest. In der Tabelle idInstance, IPAddress und der Spalte auto id gibt es drei Spalten. Ich möchte nur, dass IdInstance und IPAddress im Bericht angezeigt werden, aber wenn ich das Skript ausführe und in die Tabelle bringe, bekomme ich 7 Spalten, die zusätzlichen 5 sind RowError, RowState, Table, ItemArray und HasErrors. Wie kann ich nur die 2 Spalten zeigen, die ich möchte, IdInstance und IpAddress Spalten. Siehe Bild von zusätzlichen Spalten. Außerdem ist die Ausgabe an die Konsole korrekt und zeigt nur idinstance und ipadresse an. also muss es etwas im Code zum Erstellen der HTML-Tabelle sein?Zusätzliche Spalten in Powershell-Tabelle

function Execute-MySQLQuery([string]$query) { 
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($query, $conn)  
$dataAdapter = New-Object   MySql.Data.MySqlClient.MySqlDataAdapter($command)  
$dataSet = New-Object System.Data.DataSet         
$dataAdapter.Fill($dataSet, "data")              
$command.Dispose() 
return $dataSet.Tables["data"]             
} 

# So, to produce a table of results from a query... 
$Header = @" 
<style> 
TABLE {border-width: 1px;border-style: solid;border-color:  black;border-collapse: collapse;} 
TR:Nth-Child(Even) {Background-Color: #dddddd;} 
TH {border-width: 1px;padding: 3px;border-style: solid;border-color:  black;background-color: #6495ED;} 
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;} 

</style> 
<title> 
Patch Report 
</title> 
"@ 
$Pre = "<h1>Patch Report </h1>" 
$Pre += "<h2>These systmes are Not Running Patch Script</h2>" 
$Post = "Run on " 
$Post += Get-Date 

$query = " SELECT prodinstances.Idinstance, prodinstances.IPAddress 
FROM prodinstances 
WHERE prodinstances.Idinstance 
NOT IN (select prodwinupdates.ServersId FROM prodwinupdates) order by IPAddress ASC" 

$result = Execute-MySQLQuery $query 
$strfound = ("Found " + $result.rows.count + " Systems that are not currnetly running Patch Audit Script.") 
$result | Format-Table 

      $emailSmtpServer = "mysmtpserver" 
      $emailFrom = "[email protected]" 
      $emailTo = "[email protected]" 
      $emailSubject = $strfound 
      $emailBody = $result | ConvertTo-HTML -Head $Header -PreContent $Pre -PostContent $Post | Out-String 
    Send-MailMessage -To $emailTo -From $emailFrom -Subject $emailSubject -Body $emailBody -BodyAsHtml -SmtpServer $emailSmtpServe 

enter image description here

Antwort

1

Geben Sie die Eigenschaften, die Sie ConvertTo-Html mit dem -Property Parameter enthalten sein sollen:

$emailBody = $result | ConvertTo-HTML -Property idInstance,IPAddress -Head $Header -PreContent $Pre -PostContent $Post 
+0

Danke Mathias Sie sind ein Lebensretter ... – tmac