0

我有这个输出到 HTML 的 PowerShell 脚本。下面是代码片段。

#Services Check
Write-Host "Services Check"
$html = $html + @"
    <h3>Services Checks</h3>
    <table>
        <tr>
            <th>Name</th>
            <th>Result</th>
        </tr>
"@
get-service -computername server01 -Name *service* |
    foreach-object{
    if($_.Status -ne "Running"){
        Write-Host $_.Name "is not running" -ForegroundColor "red"
        $html = $html + @"
        <tr>
            <td class="name">$_.Name</td>
            <td class="red">is not running</td>
        </tr>
"@
    }else{
        Write-Host $_.Name "is running" -ForegroundColor "green"
        $html = $html + @"
        <tr>
            <td class="name">$_.Name</td>
            <td class="green">is running</td>
        </tr>
"@
    }
}
$html = $html + "</table>"

我的问题是在 PS 控制台输出上,它很好地列出了服务的名称,但在 HTML 输出中,它的结果如下(以表格格式)。

服务检查 System.ServiceProcess.ServiceController.Name 正在运行

我能做些什么来反对这个不具描述性的清单。

提前致谢

4

1 回答 1

1

尝试写$()

$($_.Name)

在字符串(双引号)中,您需要以这种方式强制属性变量扩展。

于 2013-05-21T08:50:01.003 回答