“无法转换”子命令返回值?

时间:2015-03-20 15:28:11

标签: rest powershell

我正在尝试调用Invoke-RestMethod(并运行到another unrelated problem)并在尝试传递子命令的结果时不断收到错误。考虑:

Invoke-RestMethod -Header @{"Iso-Date"=(Get-Date -Format "r")}

我希望它运行Get-Date -Format "r",将其输出字符串(ISO格式日期)分配给Iso-Date的哈希表值,然后将该哈希表用作命令行开关的“标头”参数。

实际发生的是我收到错误消息

  

无法将“System.Management.Automation.PSObject”类型的对象强制转换为“System.String”。

如果我将它分配给变量,这仍然会发生:

$date = (Get-Date -Format "r")
$date.GetType() # -- outputs "String"
Invoke-RestMethod -Header @{"Iso-Date"=$date) # -- Same error message.

如果我将$date设置为固定字符串值,则不会再出现错误:

$date = "Fri, 20 Mar 2015 16:00:00 GMT"
$date.GetType() # -- outputs "String" as well (!!!)
Invoke-RestMethod -Header @{"Iso-Date"=$date) # -- works fine

我做错了什么?

0 个答案:

没有答案