powershell - Powershell:在html报告的顶部一次显示表头

标签 powershell powershell-2.0

我正在尝试创建电子邮件报告以显示失败/成功的备份作业的列表。

这是我的脚本:

$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枚举之后,将html文件的内容添加的过程中,多次获取 header 名称。我可以更改脚本,以使标题[Server JobName RunStatus]仅在顶部显示一次吗?

我也想知道是否可以在邮件中而不是附件中将report.htm显示为内联内容。这可能吗?

提前致谢。
钢铁使用者

最佳答案

表标题显示为每个枚举,因为您在每个枚举中使用ConvertTo-HTML :)。 format-table也是如此。试试看:

$ dts = @()

@(gc config \ dbs.txt)| %{
$ dt =新对象“System.Data.DataTable”
$ cn =新对象System.Data.SqlClient.SqlConnection“server = $ server; database = msdb; Integrated Security = sspi”
$ cn.Open()
$ sql = $ cn.CreateCommand()
$ sql.CommandText = $(获取内容配置\ query.sql)
$ rdr = $ sql.ExecuteReader()
$ dt.Load($ rdr)
$ cn.Close()
$ dts + = $ dt
}

$ dts | ft服务器,RunStatus,作业名称>> $ log
$ dts |转换为HTML服务器,JobName,RunStatus -head $ a | ac日志\备份\ report.htm

关于powershell - Powershell:在html报告的顶部一次显示表头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643830/

相关文章:

Powershell:我可以将现有枚举用作我自己函数的参数吗?

windows - PowerShell,不包含方法 'items'

powershell - 如何使用 xWebConfigKeyValue 设置多个 AppSettings 值?

powershell - 使用Get-childitem获取最近3天内修改的文件列表

azure - 如何在 Azure DevOps 中使用 Azure Key Vault Secret 作为 CI/CD 定义中的变量?

regex - 正则表达式排除不起作用的字符

.net - 在 PowerShell 中使用 System.Net.WebClient 通过 SAN 证书访问 HTTPS URL

powershell - 使用 EWS PowerShell 获取共享交换日历

xml - 无法替换PowerShell中的字符串

powershell - PowerShell 的 setlocal/endlocal 等效项是什么?