【问题标题】:Mail notification for stopped services in server服务器中停止服务的邮件通知
【发布时间】:2016-05-24 09:55:31
【问题描述】:

当我执行变量 $test 时,我看到有 4 列 PSComputername,Name,StartMode,State 的服务,它很好。但是当我想将所有这些列发送到电子邮件时,$sr 变量有问题。我在邮件中的报告看起来像(服务器名称为空):

Serwer name:    
Start mode:     Auto
State:  Stopped
Naame:  clr_optimization_v4.0.30319_64 

脚本:

$servers = "server1"

$test = (gwmi win32_service -ComputerName $servers | 
where {$_.StartMode -eq “Auto” -and $_.State -eq "Stopped"}) | 
select PSComputername,Name,StartMode,State

$log = "C:\Users\user\Desktop\lalala.txt"
$filecontent = (Get-Content $log)
$rekord = 1 

foreach ($rekord in $test)
{
$sr=$rekord.Serwer
$sm=$rekord.StartMode
$st=$rekord.State
$n=$rekord.Name

$body += "
<table>
<tr>
<td>Nazwa serwera: </td> <td> $sr </td>
</tr>
<tr>
<td>Typ uruchomienia: </td> <td> $sm </td>
<tr/>
<tr> 
<td>Stan uslugi: </td> <td> $st </td> 
</tr>
<tr>
<td>Nazwa: </td> <td>$n </td>
</tr>
<br />
</table>
"

Add-Content $log "$sr,$st,$sm,$n"
Get-Content $log
}
Send-Mailmessage -smtpServer mail.domain.com -from serwisy@domain.com    -to user@domain.com -subject test -body $body -bodyasHTML -priority High

【问题讨论】:

  • 修复是 $sr=$rekord.PSComputerName

标签: powershell


【解决方案1】:

您从gwmi win32_service -ComputerName $servers-结果中选择PSComputername,但稍后使用$sr = $rekord.Serwer

这应该是$sr = $rekord.PSComputerName

您可能想要查看该 HTML。看起来它将为每台服务器的每个服务创建一个单独的表(带标题)。

【讨论】:

    【解决方案2】:
        $servers = "server1"
    
    $test = (gwmi win32_service -ComputerName $servers | 
    where {$_.StartMode -eq “Auto” -and $_.State -eq "Stopped"}) | 
    select PSComputername,Name,StartMode,State
    
    $log = ".\desktop\lalala.txt"
    $filecontent = (Get-Content $log)
    $rekord = 1 
    
    foreach ($rekord in $test)
    {
    $sr = $rekord.PSComputerName
    $sm = $rekord.StartMode
    $st = $rekord.State
    $n = $rekord.Name
    
    $body += "
    <table>
    <tr>
    <td>Nazwa serwera: </td> <td> $sr </td>
    </tr>
    <tr>
    <td>Typ uruchomienia: </td> <td> $sm </td>
    <tr/>
    <tr> 
    <td>Stan uslugi: </td> <td> $st </td> 
    </tr>
    <tr>
    <td>Nazwa: </td> <td>$n </td>
    </tr>
    <br />
    </table>
    "
    
    Add-Content $log "$sr,$st,$sm,$n"
    Get-Content $log
    }
    Send-Mailmessage -smtpServer mail.domain.com -from serwisy@domain.com    -to user@domain.com -subject test -body $body -bodyasHTML -priority High
    

    我修复了您的一些代码,但您必须修复 HTML 位。 但主要问题是您选择了PSComputername,但使用了$rekord.serwer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2015-06-28
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      相关资源
      最近更新 更多