Modules/Public/Disconnect-S2DCluster.ps1
|
function Disconnect-S2DCluster { <# .SYNOPSIS Disconnects from the active S2D cluster session and releases resources. .DESCRIPTION Removes any CIM or PS sessions created by Connect-S2DCluster and resets the module-scoped session state. Call this when you are done with the cluster or before connecting to a different cluster. .EXAMPLE Disconnect-S2DCluster .EXAMPLE # Connect, do work, then disconnect Connect-S2DCluster -ClusterName "c01-prd-bal" -Credential $cred Get-S2DPhysicalDiskInventory Disconnect-S2DCluster #> [CmdletBinding()] param() if (-not $Script:S2DSession.IsConnected) { Write-Verbose "No active S2DCartographer session to disconnect." return } $clusterName = $Script:S2DSession.ClusterName if ($Script:S2DSession.CimSession) { try { $Script:S2DSession.CimSession | Remove-CimSession -ErrorAction SilentlyContinue Write-Verbose "CimSession to '$clusterName' removed." } catch { Write-Warning "Error removing CimSession: $_" } } if ($Script:S2DSession.PSSession) { try { $Script:S2DSession.PSSession | Remove-PSSession -ErrorAction SilentlyContinue Write-Verbose "PSSession to '$clusterName' removed." } catch { Write-Warning "Error removing PSSession: $_" } } $Script:S2DSession = @{ ClusterName = $null ClusterFqdn = $null Nodes = @() CimSession = $null PSSession = $null IsConnected = $false IsLocal = $false CollectedData = @{} } Write-Verbose "Disconnected from '$clusterName'." } |