【问题标题】:Traverse with Powershell Output when stored as an Object存储为对象时使用 Powershell 输出遍历
【发布时间】:2017-10-30 20:01:46
【问题描述】:

我有这个命令可以从我的服务器获取集群信息:

$DBServers = "DC2TSCDB01"
$DBObject = `
    Invoke-Command -ComputerName $DBServers {
        Import-Module FailoverClusters
        Get-ClusterGroup `
        | Where-Object {$_.Name -Like 'SQL Server*'} `
        | Sort-Object Name `
        | Format-Table `
        | out-string
}
$DBObject

Name                     OwnerNode  State
----                     ---------  -----
SQL Server (FS)          DC2TSCdb02 Online
SQL Server (GG)          DC2TSCdb02 Online
SQL Server (RQ)          DC2TSCdb02 Online
SQL Server (MSSQLSERVER) DC2TSCdb01 Online

如何在打印时遍历每个值,以便将其格式化为 html 输出?

【问题讨论】:

  • 在我们走得太远之前,您是否尝试过将您的 $DBObject 管道传输到 ConvertTo-HTML 中?这可能对你有用。
  • @BryceMcDonald 他真的不能,因为他将输出通过管道传输到 Out-String,所以 $DBObject 并不是真正的对象,而是字符串对象。
  • 啊!很好的捕捉@ShawnEsterman - 当我略读时我没有捕捉到。下面的答案很好。

标签: html powershell email output html-email


【解决方案1】:
$DBServers = "DC2TSCDB01"
$DBObject = `
    Invoke-Command -ComputerName $DBServers {
        Import-Module FailoverClusters
        Get-ClusterGroup `
        | Where-Object {$_.Name -Like 'SQL Server*'} `
        | Sort-Object Name
}

# Convert to table for console
$DBObject | Format-Table -AutoSize

# Convert to HTML table with all elements
$DBOject | ConvertTo-Html

# Convert to HTML table with just <table> elements
$DBObject | ConvertTo-Html -Fragment

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2019-09-27
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多