次のメソッドに、 RunspaceConnectionInfo (リモート サーバー情報を指定するため) とInitialSessionStateを受け入れるオーバーロードがないのはなぜですか?
完全なコンテキスト:
RunspaceFactory を使用して作成されたリモート RunspacePools をキャッシュする RunspacePoolCache を構築しています。キャッシュはリモートサーバー情報に基づいています。プールの RunspacePoolStateInfo.State が Open になるまで、同じリモート サーバーで Powershell スクリプトを実行するために同じ RunspacePool が使用されます。(恥知らずなプラグ:これはうまくいきますか?)
次に、作成した RunspacePool に共通の Powershell スナップインのセットを追加します。実行されたスクリプト内にスナップインを追加すると、次の例外が発生する場合があります。
An item with the same key has already been added
これは、Powershell スクリプトで次の操作を行った場合でも発生します (頻度は低くなりますが)。
if ((Get-PSSnapin | ? { $_.Name -eq 'VeeamPSSnapIn' }) -eq $null) {
Add-PsSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue
}
ここで、 InitialSessionStateを介してスナップインをロードしようとしています。しかし、提供されているメソッドのセットから、InitialSessionState はローカルの RunspacePools を作成している間のみ指定できるようです。