Уточнение New-PSSession и Runspacepool
Мне нужно запустить командлеты Exchange онлайн, используя классы powershell в C#.
Для запуска командлетов exchange online мне нужно установить удаленный сеанс powershell.
Мои сомнения: 1) Если размер runspacepool равен 2, должен ли я создать этот удаленный сеанс powershell в обоих пространствах выполнения в этом runspacepool? Если да, как я могу / есть ли способ перебрать пространства выполнения для запуска команды New-PSSession в обоих пространствах выполнения.
2) Если сессия истекает в ОДНОМ пространстве выполнения, есть ли способ получить это конкретное пространство выполнения из пространства выполнения и создать новый сеанс только для этого пространства?
1 ответ
Вам не нужно вручную создавать удаленные сеансы для каждого пространства выполнения в пуле. Вместо этого предоставьте информацию о соединении при создании экземпляра runspacepool со следующей перегрузкой: RunspaceFactory.CreateRunspacePool(Int32, Int32, RunspaceConnectionInfo)
(как показано в этом ответе):
string shell = "http://schemas.microsoft.com/powershell/Microsoft.PowerShell";
var target = new Uri("http://myserver/wsman");
var secured = new SecureString();
foreach (char letter in "mypassword")
{
secured.AppendChar(letter);
}
secured.MakeReadOnly();
var credential = new PSCredential("username", secured);
var connectionInfo = new WSManConnectionInfo(target, shell, credential);
Runspace remotePool = RunspaceFactory.CreateRunspacePool(0,2,connectionInfo);