我正在尝试在 Orchestrator 2012 R2 运行手册中的 PowerShell 脚本中使用 Invoke-RestMethod。当我运行运行手册时,它告诉我:
术语“Invoke-RestMethod”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
如果我将活动中的行复制并粘贴到 Runbook 服务器上的 PowerShell 控制台,它会按预期工作。Invoke-RestMethod的文档告诉我它是在 .NET v3 中引入的。“运行 .Net 脚本”的文档说:
此活动与 .NET CLR 2.0 版及更高版本兼容。
IIRC,.NET 3 是 .NET 2 之后的下一个,所以我假设这个声明意味着它应该至少支持 .NET 3 PowerShell cmdlet。谁能解释为什么这对我不起作用?
PS:当我使用 REST 集成包中的 Invoke REST 服务时,它返回的数据在返回的字符串周围带有引号,这意味着我必须在它之后放置另一个活动以去除引号,这就是我正在做的作为一种解决方法。我宁愿在现有脚本中多出一行,而不是必须添加两个额外的活动来完成同一件事。
Orchestrator 似乎默认仅使用 PowerShell v2。这可以通过注册表黑客来更改: http ://www.scsm.se/?p=1458 我已经在我的服务器上完成了这个,它对我有用。