2016-05-24 4 views
0

私が変数$ testを実行すると、4列のPSComputername,Name,StartMode,Stateとそのサービスが表示されます。しかし、私は電子メールに私はこの列をすべて送信する場合、私は$sr変数に問題があります。メールでの私のレポートでは、(serwer名が空である)のようになります。サーバ内で停止しているサービスのメール通知

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 [email protected] -to [email protected] -subject test -body $body -bodyasHTML -priority High 
+0

修正は$ sr = $ rekord.PSComputerNameです。 – cinq2

答えて

1

あなたはgwmi win32_service -ComputerName $servers -resultsからPSComputernameを選択し、それ以降の$sr = $rekord.Serwerを使用しています。

これは、あなたがそのHTML上で見たいと思うかもしれません$sr = $rekord.PSComputerName

されている必要があります。サーバーごとのすべてのサービスに別々のテーブル(ヘッダー付き)を作成するように見えます。

0
$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 [email protected] -to [email protected] -subject test -body $body -bodyasHTML -priority High 

コードの一部が修正されましたが、HTMLビットを修正する必要があります。 しかし、主な問題は、PSComputernameを選択したことです。$rekord.serwer

関連する問題