我正在尝试在 Orchestrator 2012 R2 运行手册中的 PowerShell 脚本中使用 Invoke-RestMethod。当我运行运行手册时,它告诉我:
术语“Invoke-RestMethod”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
如果我将活动中的该行复制并粘贴到 Runbook 服务器上的 PowerShell 控制台中,它会按预期工作。Invoke-RestMethod 文档告诉我它是在 .NET v3 中引入的。“运行 .Net 脚本”文档说:
此活动与 .NET CLR 2.0 及更高版本兼容。
我记得,.NET 3 是 .NET 2 之后的下一个版本,所以我假设这句话意味着它应该至少支持 .NET 3 PowerShell cmdlet。有人能解释一下为什么这对我不起作用吗?
附言:当我使用 REST Integration Pack 中的“调用 REST 服务”时,它返回的数据带有引号,这意味着我必须在它后面再添加一个活动来删除引号,这就是我采取的解决方法。我宁愿在现有脚本中多加一行,也不愿添加两个额外的活动来完成相同的事情。
答案1
看来 Orchestrator 默认仅使用 PowerShell v2。这可以通过注册表破解来更改: http://www.scsm.se/?p=1458 我已经在我的服务器上完成了这个并且它对我有用。