C# 新的PSSession和Runspacepool澄清

C# 新的PSSession和Runspacepool澄清,c#,powershell,runspace,C#,Powershell,Runspace,我需要在C#中使用powershell类运行Exchange online cmdlet 要运行exchange online cmdlet,我需要建立远程powershell会话 我的疑问是: 1) 如果runspacepool大小为2,我是否应该在该runspacepool的两个运行空间中创建该远程powershell会话?如果是,我/是否有办法在两个运行空间中循环运行新的PSSession命令 2) 如果会话在一个运行空间中过期,是否有方法从运行空间池中获取该特定的运行空间,并单独创建该运

我需要在C#中使用powershell类运行Exchange online cmdlet

要运行exchange online cmdlet,我需要建立远程powershell会话

我的疑问是: 1) 如果runspacepool大小为2,我是否应该在该runspacepool的两个运行空间中创建该远程powershell会话?如果是,我/是否有办法在两个运行空间中循环运行新的PSSession命令


2) 如果会话在一个运行空间中过期,是否有方法从运行空间池中获取该特定的运行空间,并单独创建该运行空间的新会话?

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


嗨,Mathias R. Jessen,考虑使用RunSealPo水池,我运行Exchange联机CMDLET。但我无法控制该runspacepool中的哪个运行空间将运行该cmdlet。远程pssession是否有可能仅在一个运行空间中过期?那时我应该放弃这个runspacepool并创建一个新的runspacepool吗?(bcoz我无法运行cmdlet在会话过期的特定运行空间中创建新的pssession)@PraveenKumar我认为您不必担心这一点。顺便说一句,shell模式应该是
http://schemas.microsoft.com/powershell/Microsoft.Exchange
对于Exchange Online,您的意思是说,会话根本不会过期(或者,即使会话过期,它也会自动建立)?
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);