【问题标题】:Get Service Name in HTML Report在 HTML 报告中获取服务名称
【发布时间】:2017-05-08 10:05:19
【问题描述】:

我正在开发一个简单的解决方案,如果我的远程服务器上的任何服务停止,它需要发送电子邮件警报。

以下是流程:

  1. 在记事本文件中写入我要监控的所有服务
  2. PowerShell 脚本将从文件中读取所有服务并检查其状态。
  3. 如果任何服务停止,它将向我的 HTML 格式添加内容并发送电子邮件。

一切正常,但我得到的是System.ServiceProcess.ServiceController,而不是实际的服务名称。我在 PowerShell 控制台上打印东西,并在那里获得服务名称。

代码:

$Services = Get-Content D:\Services.txt
foreach ($Service in $Services) {
    Write-Host "Service Name: "$Service
}

当我执行这个时,我得到了预期的服务名称。

if ($Service.Status -eq "Stopped") {
    Write-Host "Service is stopped"
    $dataRow = "<tr><td width='10%'>199.199.50.512</td><td width='10%' >$Service</td><td width='10%' align='center'>Stopped</td></tr>"
    Add-Content $ServiceReport $dataRow;
}

这里写了$Service,我期待我的服务名称,但我在HTML报告中得到System.ServiceProcess.ServiceController

HTML 报告:

【问题讨论】:

    标签: powershell service


    【解决方案1】:

    您需要具体说明要返回的对象的哪个属性。您可能需要 DisplayName,请执行以下操作:

    $dataRow = "<tr><td width='10%'>199.199.50.512</td><td width='10%' >$($Service.displayname)</td><td width='10%' align='center'>Stopped</td></tr>" 
    

    请注意,这包含在子表达式运算符$() 中,以便从双引号字符串中正确访问对象的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 2023-02-02
      • 2012-06-09
      • 2012-06-21
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多