Html PowerShell脚本输出到电子邮件
我正在尝试获取一个PowerShell命令,如果用户已启用OOF,该命令将显示用户的显示名称、主SMTP地址、开始时间和结束时间 我找到了一个显示用户名的命令。但我需要添加用户的显示名、主SMTP地址、开始时间和结束时间 我的问题是:当试图发送HTML格式的邮件时,我收到了以下错误消息 代码:Html PowerShell脚本输出到电子邮件,html,powershell,exchange-server,Html,Powershell,Exchange Server,我正在尝试获取一个PowerShell命令,如果用户已启用OOF,该命令将显示用户的显示名称、主SMTP地址、开始时间和结束时间 我找到了一个显示用户名的命令。但我需要添加用户的显示名、主SMTP地址、开始时间和结束时间 我的问题是:当试图发送HTML格式的邮件时,我收到了以下错误消息 代码: $master = [collections.arraylist]@() $mailboxlist = Get-Mailbox -ResultSize Unlimited foreach ($mailbo
$master = [collections.arraylist]@()
$mailboxlist = Get-Mailbox -ResultSize Unlimited
foreach ($mailbox in $mailboxlist) {
$reply = $mailbox | Get-MailboxAutoReplyConfiguration
if ($reply.AutoReplyState -in "Scheduled","Enabled") {
$output = [ordered]@{
'DisplayName' = $null
'Email' = $null
'Start' = $null
'End' = $null
}
$output.DisplayName = $mailbox.DisplayName
$output.Email = $mailbox.PrimarySMTPAddress
switch ($reply.AutoReplyState) {
"Scheduled" {
$output.Start = $reply.StartTime
$output.End = $reply.EndTime
}
"Enabled" {
$output.Start = "Not Scheduled"
$output.End = "Not Scheduled"
}
}
$output = [PSCustomObject]$output
$master.Add($output) | Out-Null
}
}
$master | ConvertTo-Html | Out-String
Send-MailMessage -To $emailto -Subject $subject -SmtpServer $smtp -From $fromaddress -Body ($master) -BodyAsHtml -Credential $UserCredential
错误消息是:
Send-MailMessage : Cannot convert 'System.Collections.ArrayList' to the type
'System.String' required by parameter 'Body'. Specified method is not supported.
At line:67 char:92
+ ... maddress -Body ($master) -BodyAsHtml -Credential $UserCredential
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Send-MailMessage], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.SendMailMessage
发送邮件:无法将“System.Collections.ArrayList”转换为类型
参数“Body”需要“System.String”。不支持指定的方法。
第67行字符:92
+ ... maddress-Body($master)-BodyAsHtml-凭证$UserCredential
+ ~~~~~~~~~
+CategoryInfo:InvalidArgument:(:)[Send MailMessage],参数BindingException
+FullyQualifiedErrorId:CannotConvertArgument,Microsoft.PowerShell.Commands.SendMailMessage
声明
$master | ConvertTo-Html | Out-String
不就地转换$master
的内容。它只是将其写入输出流。在Send MailMessage
语句中使用变量之前,需要将结果赋回变量:
$master = $master | ConvertTo-Html | Out-String
在我看来,
$master
是一个数组——您试图将其用作字符串——尝试输出您的$master
数组,并提取相关信息(或构建适当的字符串)是的……您甚至可以说:-Body$($master-join[Environment]::NewLine)
或类似的……换句话说,将其转换为字符串。