From 369bd284a19170c95afc4b9f3503052d3dbaf591 Mon Sep 17 00:00:00 2001 From: Torsten Brendgen Date: Mon, 29 Jun 2026 13:53:41 +0200 Subject: [PATCH] Add MigrationRunspace management to migration script functions --- Start-SPMigrationGUI.ps1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Start-SPMigrationGUI.ps1 b/Start-SPMigrationGUI.ps1 index 72c7fc8..084c91b 100644 --- a/Start-SPMigrationGUI.ps1 +++ b/Start-SPMigrationGUI.ps1 @@ -800,6 +800,7 @@ $script:CurrentMappingMeta = [ordered]@{ } $script:IsMigrationRunning = $false $script:MigrationPowerShell = $null +$script:MigrationRunspace = $null $script:MigrationAsyncResult = $null $script:MigrationOutput = $null $script:MigrationTimer = $null @@ -1107,6 +1108,10 @@ function Clear-MigrationRunState { $script:MigrationPowerShell.Dispose() } + if ($null -ne $script:MigrationRunspace) { + $script:MigrationRunspace.Dispose() + } + if ($null -ne $script:MigrationOutput) { try { $script:MigrationOutput.Dispose() @@ -1116,6 +1121,7 @@ function Clear-MigrationRunState { } $script:MigrationPowerShell = $null + $script:MigrationRunspace = $null $script:MigrationAsyncResult = $null $script:MigrationOutput = $null $script:MigrationCompletedHandler = $null @@ -1207,7 +1213,13 @@ function Invoke-MigrationScript { } Reset-MigrationStreamPositions + $script:MigrationRunspace = [runspacefactory]::CreateRunspace() + $script:MigrationRunspace.ApartmentState = [System.Threading.ApartmentState]::STA + $script:MigrationRunspace.ThreadOptions = [System.Management.Automation.Runspaces.PSThreadOptions]::ReuseThread + $script:MigrationRunspace.Open() + $script:MigrationPowerShell = [powershell]::Create() + $script:MigrationPowerShell.Runspace = $script:MigrationRunspace $script:MigrationOutput = [System.Management.Automation.PSDataCollection[psobject]]::new() $script:MigrationCompletedHandler = $OnCompleted $script:MigrationActionLabel = $ActionLabel