C # вызов Exchange Online powershell ... нужно повторно использовать пространство выполнения - PullRequest
0 голосов
/ 24 сентября 2019

В настоящее время наша компания переходит на Exchange Online, и меня попросили помочь переписать некоторые части предыдущего кода управления пользователями, являющегося частью приложения MVC.Ядром этого кода был вызов локального PowerShell:

using (Runspace runspace=RunspaceFactory.CreateRunspace(connectionInfo))
        {

            PowerShell powershell = PowerShell.Create();

            powershell.AddCommand(Command);
            ...                
            runspace.Open();
            powershell.Runspace = runspace;
            psobjs = powershell.Invoke();
        }

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

Runspace runspace=RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open(); 

Однако я получаю сообщение об ошибке, что пространство выполнения находится в неопределенном состоянии.Может ли кто-нибудь случайно предложить правильное повторное использование пространства выполнения?

Спасибо

...