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

Foi útil?

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
scroll top