stackoverflow.com/questions/1233640/...

я есть приложение, которое я использую для запуска команд Exchange Powershell внутри кода C #, как показано ниже. Это пример соответствующих строк, которые я использую для запуска команды 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();

Этот код прекрасно работает во всех случаях до сих пор. сценарий, который я пытаюсь запустить вместо приведенного выше, заключается в установке RetentionPolicy для почтового ящика. Скрипт, который я пытаюсь запустить, выглядит так:

Set-Mailbox -Identity 'rj' -RetentionPolicy 'Основная политика хранения кампуса'

Когда я запускаю это в самом PowerShell, он работает отлично, но когда я пытаюсь запустить его, используя приведенный ниже код, я получаю сообщение об ошибке: «Невозможно вызвать эту функцию, потому что текущий хост не реализует ее».

Из-за этой ошибки кажется, что команда, запускаемая в C #, не может выполнить команду RetentionPolicy, но это не имеет особого смысла. Я гуглил это и попробовал все предложенное, но не повезло.

Если кто-нибудь знает, почему это происходит, это было бы очень полезно.

Ответы на вопрос(1)

Ваш ответ на вопрос