A mudança de chave que você desejará fazer é durante a conversão de objeto para string. No momento, você está usando format-list
onde deseja usar um conversor diferente, por exemplo, o cmdlet FormatTo-HTML
. Aqui está um artigo de technet sobre o FormatTo-HTML e alguma documentação sobre FormatTo-HTML do ss64.com
Você pode fazer referência a um arquivo css com -cssuri
, mas isso é incluído apenas como um link, portanto, não será particularmente útil usar um arquivo local. Em vez disso, você poderia incluir um elemento html <style/>
em uma string passada para o sinalizador -head
.
FormatTo-HTML tem suas limitações, como não produzir estilos de linha alternados para a coloração, mas pode ser adequado às suas necessidades.
Além disso, você precisa definir a propriedade IsBodyHTML
na mensagem. Para fazer isso, você precisa criar um objeto MailMessage em vez de usar System.Net.Mail.SmtpClient::Send
para criar um para você. Por exemplo:
$mailMsg = new-object System.Net.Mail.MailMessage $From $To
$mailMsg.Subject = "$computer, $status"
$mailMsg.IsBodyHTML = $true
$mailMsg.Body = $event | FormatTo-HTML -title "System Status for $computer" | out-string
$smtp.Send($mailMsg)