我正在尝试使用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
答案 0 :(得分:1)
-body
参数期望将字符串传递给它。您将需要将变量转换为字符串类型,或者将其值转换为字符串。您可以通过多种方式完成此操作。
Send-MailMessage -From $From -To $To -Subject $Subject -Body ($Value | Out-String)
Out-String
之所以在这里起作用,是因为它将您的对象($Value
)(包含多个ADUser对象的单个数组对象)转换为单个字符串。 / p>
有关更多详细信息,请参见Out-String。