A execução de um comando powershell em erros de C # com "Não é possível chamar esta função porque o host atual não a implementa"
Eu tenho um aplicativo que eu uso para executar comandos do Exchange Powershell dentro do código C # como abaixo. Este é um exemplo das linhas relevantes que eu uso para executar o comando powershell.
RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
//load Exchange shell
rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapInException);
Runspace runSpace = RunspaceFactory.CreateRunspace(rsConfig);
//open runspace
runSpace.Open();
//setup pipeline
Pipeline pipeLine = runSpace.CreatePipeline();
String sScript = "get-mailbox -identity 'rj'";
//add script to pipeline
pipeLine.Commands.AddScript(sScript);
//run the script
pipeLine.Invoke();
pipeLine.Dispose();
Esse código funciona perfeitamente em todos os casos até agora. o script que estou tentando executar em vez do acima é definir o RetentionPolicy para uma caixa de correio. O script que estou tentando executar se parece com o seguinte:
Set-Mailbox -Identity 'rj' -RetentionPolicy 'Política de retenção de campus principal'
Quando executo isso no próprio PowerShell, ele funciona perfeitamente, mas quando tento executá-lo usando o código abaixo, recebo o erro "Não é possível invocar essa função porque o host atual não a implementa".
Com esse erro, quase parece que o comando executado em C # não pode executar o comando RetentionPolicy, mas isso não faz muito sentido. Eu pesquisei isso no Google e tentei de tudo, mas não tive sorte.
Se alguém souber por que isso está acontecendo, seria muito útil.