Add MigrationRunspace management to migration script functions
This commit is contained in:
@@ -800,6 +800,7 @@ $script:CurrentMappingMeta = [ordered]@{
|
|||||||
}
|
}
|
||||||
$script:IsMigrationRunning = $false
|
$script:IsMigrationRunning = $false
|
||||||
$script:MigrationPowerShell = $null
|
$script:MigrationPowerShell = $null
|
||||||
|
$script:MigrationRunspace = $null
|
||||||
$script:MigrationAsyncResult = $null
|
$script:MigrationAsyncResult = $null
|
||||||
$script:MigrationOutput = $null
|
$script:MigrationOutput = $null
|
||||||
$script:MigrationTimer = $null
|
$script:MigrationTimer = $null
|
||||||
@@ -1107,6 +1108,10 @@ function Clear-MigrationRunState {
|
|||||||
$script:MigrationPowerShell.Dispose()
|
$script:MigrationPowerShell.Dispose()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($null -ne $script:MigrationRunspace) {
|
||||||
|
$script:MigrationRunspace.Dispose()
|
||||||
|
}
|
||||||
|
|
||||||
if ($null -ne $script:MigrationOutput) {
|
if ($null -ne $script:MigrationOutput) {
|
||||||
try {
|
try {
|
||||||
$script:MigrationOutput.Dispose()
|
$script:MigrationOutput.Dispose()
|
||||||
@@ -1116,6 +1121,7 @@ function Clear-MigrationRunState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$script:MigrationPowerShell = $null
|
$script:MigrationPowerShell = $null
|
||||||
|
$script:MigrationRunspace = $null
|
||||||
$script:MigrationAsyncResult = $null
|
$script:MigrationAsyncResult = $null
|
||||||
$script:MigrationOutput = $null
|
$script:MigrationOutput = $null
|
||||||
$script:MigrationCompletedHandler = $null
|
$script:MigrationCompletedHandler = $null
|
||||||
@@ -1207,7 +1213,13 @@ function Invoke-MigrationScript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Reset-MigrationStreamPositions
|
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 = [powershell]::Create()
|
||||||
|
$script:MigrationPowerShell.Runspace = $script:MigrationRunspace
|
||||||
$script:MigrationOutput = [System.Management.Automation.PSDataCollection[psobject]]::new()
|
$script:MigrationOutput = [System.Management.Automation.PSDataCollection[psobject]]::new()
|
||||||
$script:MigrationCompletedHandler = $OnCompleted
|
$script:MigrationCompletedHandler = $OnCompleted
|
||||||
$script:MigrationActionLabel = $ActionLabel
|
$script:MigrationActionLabel = $ActionLabel
|
||||||
|
|||||||
Reference in New Issue
Block a user