Estou tentando usar Invoke-RestMethod em um script do PowerShell em um runbook do Orchestrator 2012 R2. Quando eu executo o runbook, ele me diz:
O termo 'Invoke-RestMethod' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente.
Se eu copiar e colar a linha da atividade em um console do PowerShell no servidor runbook, funcionará conforme o esperado. A documentação do Invoke-RestMethod informa que ele foi introduzido no .NET v3. A documentação para "Executar .Net Script" diz:
Esta atividade é compatível com .NET CLR versão 2.0 e posterior.
IIRC, .NET 3 foi o próximo após .NET 2, então estou assumindo que esta declaração significa que ele deve suportar pelo menos .NET 3 cmdlets do PowerShell. Alguém pode esclarecer por que isso não está funcionando para mim?
PS: Quando uso o Invoke REST Service do REST Integration Pack, ele retorna os dados com aspas ao redor da string retornada, o que significa que tenho que colocar outra atividade depois dela para remover as aspas, que é o que estou fazendo como solução alternativa. Prefiro ter uma linha extra em um script existente, em vez de adicionar duas atividades extras para realizar a mesma coisa.
Parece que o Orchestrator usa apenas o PowerShell v2 por padrão. Isso pode ser alterado com um hack de registro: http://www.scsm.se/?p=1458 Eu fiz isso no meu servidor e funcionou para mim.