我正在尝试调用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
我做错了什么?