Send-MailMessage:无法将“ System.Object []”转换为参数“ Body”所需的类型“ System.String”。不支持指定的方法

时间:2019-04-12 18:26:11

标签: powershell sendmail

我正在尝试使用Powershell发送电子邮件。电子邮件的正文将包含存储在变量中的我运行的Get-ADuser命令的结果。当我尝试下面的代码时,出现错误“ Send-MailMessage:无法将'System.Object []'转换为参数'Body'所需的'System.String'类型。不支持指定的方法。”

我在这里做的事情有问题吗?

$Value = Get-ADUser -Filter * -Properties propery.. | foreach { $_.propery..}
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Value 

1 个答案:

答案 0 :(得分:1)

-body参数期望将字符串传递给它。您将需要将变量转换为字符串类型,或者将其值转换为字符串。您可以通过多种方式完成此操作。

Send-MailMessage -From $From -To $To -Subject $Subject -Body ($Value | Out-String)

Out-String之所以在这里起作用,是因为它将您的对象($Value)(包含多个ADUser对象的单个数组对象)转换为单个字符串。 / p>

有关更多详细信息,请参见Out-String