スクリプトを続行する前に、確立して現在のセッションにインポートする必要がある 2 つの PSSession があります。どちらのステップも、連続して実行する場合、それぞれ約 10 ~ 15 秒、合計で 20 ~ 30 秒かかります。
別の実行空間で New-PSSession を実行し、その確立されたセッションを親プロセスにインポートすることは可能ですか?
たとえば、次のように変更します。
New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri ("https://$($service)/PowerShell/") -Credential $Credential -Authentication Basic -AllowRedirection -ErrorAction Stop
New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $Credential -Authentication Basic -AllowRedirection -ErrorAction Stop
おそらくこのようなものに(これは機能しないことを警告します):
$credential = Get-Credential
$scriptblock =
{
param ([string]$Credential)
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $Credential -Authentication Basic -AllowRedirection -ErrorAction Stop
return $session
}
$shell = [PowerShell]::Create().AddScript($scriptblock).AddParameter($credential)
$job = $shell.BeginInvoke()
$result = $shell.EndInvoke($job)
Import-PSSession $result
最終的な目標は、これにかかる時間を短縮することです。New-PSSession を並行して使用すると、連続して 20 ~ 30 秒ではなく、10 ~ 15 秒で完了するという考えです。これを達成する答えに満足しています。実行空間を使用する必要はありません。
編集:追加された目標