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

use*_*164 2 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 
Run Code Online (Sandbox Code Playgroud)

Adm*_*ngs 5

-body参数需要一个字符串传递给它。您需要将变量转换为字符串类型或将其值操作为字符串。您可以通过多种方式实现此目的。

Send-MailMessage -From $From -To $To -Subject $Subject -Body ($Value | Out-String)
Run Code Online (Sandbox Code Playgroud)

Out-String在这里工作是因为它需要您的对象 ( $Value),这是一个包含多个 ADUser 对象的单个数组对象,并将其转换为单个字符串。

有关更多详细信息,请参阅输出字符串