Como posso obter a saída de aviso de um cmdlet PowerShell programaticamente em v1.0?
-
24-09-2019 - |
Pergunta
Estou usando o PowerShell v1.0 (é um requisito que eu não possa usar 2.0) e estou tendo problemas para tentar capturar programaticamente a saída do cmdlet no fluxo de aviso.
No PowerShell 2.0, é fácil:
var powerShell = PowerShell.Create();
powerShell.AddCommand(someCommand);
powerShell.Invoke();
foreach (var warning in powerShell.Streams.Warning) { ... }
No entanto, a classe System.Management.Automation.Powershell não existe no PowerShell versão 1, e as classes que existem não parecem dar acesso ao fluxo de aviso. Além disso, as informações do fluxo de aviso não estão na saída padrão do cmdlet.
Obrigado! Sam
Solução
Você sempre pode implementar a interface host (host personalizado) e, em seguida, as mensagens de aviso serão enviadas diretamente para você. Não é um chip-shot, mas a única coisa que eu consigo pensar para a v1.0.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow