New-PSSession和Runspacepool澄清

时间:2015-08-11 07:00:44

标签: c# powershell runspace

我需要使用C#中的powershell类运行Exchange在线cmdlet。

要运行Exchange Online cmdlet,我需要建立一个远程PowerShell会话。

我的怀疑是: 1)如果runspacepool size为2,那么应该在该runspacepool的两个运行空间中创建远程PowerShell会话吗?如果是,我怎样才能有办法循环运行空间来运行New两个运行空间中的-PSSession命令。

2)如果会话在一个运行空间中到期,是否有办法从runspacepool获取该特定的运行空间,并创建仅运行空间的新会话?

1 个答案:

答案 0 :(得分:0)

您无需为池中的每个运行空间手动创建远程会话。相反,在使用以下重载实例化runspacepool时提供连接信息:RunspaceFactory.CreateRunspacePool(Int32, Int32, RunspaceConnectionInfo)(如this answer所示):

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);