【问题标题】:Send-MailMessage : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Body'. Specified method is not supportedSend-MailMessage:无法将“System.Object[]”转换为参数“Body”所需的类型“System.String”。不支持指定的方法
【发布时间】:2019-12-26 04:44:34
【问题描述】:

我正在尝试使用 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 

【问题讨论】:

    标签: powershell sendmail


    【解决方案1】:

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

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

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

    更多详情请见Out-String

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多