2017-05-18 20 views
0

我正在研究一個腳本,該腳本可以ping通工作站列表,並返回將它們添加到數組(如果它們處於脫機狀態)。在將它們添加到數組後,腳本會發送包含脫機工作站列表的電子郵件。這是迄今爲止如何格式化Send-MailMessage正文內容

$list = Get-Content "C:\Users\$env:UserName\Desktop\workstations.txt" 
ForEach ($_ in $list) { 
$test = Test-Connection -BufferSize 32 -Count 1 -ComputerName $_ -Quiet 
IF ($test -match "false") { 
$offlinelist += ($_) 
} 
} 
Send-MailMessage -To "me <[email protected]>" -From "you <[email protected]>" -Subject "Offline Workstations" -SmtpServer "smtp.me.com" -body "These workstations are offline: <br> $offlinelist" -BodyAsHtml 

在目前形式的腳本代碼將發送一封電子郵件,一個輸出看起來像這樣:

這些工作站處於脫機狀態:
test1test2

我需要它的樣子是這樣的:

個這些工作站處於脫機狀態:
test1的
test2的

我知道有一種方法與可能New-Object cmdlet或可能是Format-Table cmdlet來做到這一點。我只是不確定如何去構建代碼。我發現了幾個示例,但我無法使其與Send-MailMessage cmdlet一起使用。另外,是否可以使用不同的顏色字體或面部設計電子郵件的正文?任何幫助或例子將不勝感激。先謝謝你。

回答

1

萬一別人遇到這在將來,我可以通過工作站名稱數組中後加入<br>解決我的問題:

$offlinelist += "$_ <br>"

這似乎是因爲工作Send-MailMessage cmdlet中的BodyAsHtml屬性。我不確定這是否正確正確的方式,但它正在爲我工​​作沒有錯誤。乾杯!