public/Disconnect-Unraid.ps1
|
function Disconnect-Unraid { <# .SYNOPSIS Disconnects from an Unraid server. .PARAMETER Session Specific session to disconnect. Defaults to the current session. .EXAMPLE Disconnect-Unraid .EXAMPLE Disconnect-Unraid -Session $mySession #> [CmdletBinding()] [OutputType('void')] param( [Parameter()] [UnraidSession]$Session ) process { if ($Session) { if ($script:DefaultUnraidSession -and $script:DefaultUnraidSession.Server -eq $Session.Server -and $script:DefaultUnraidSession.ConnectedAt -eq $Session.ConnectedAt) { $serverName = $script:DefaultUnraidSession.Server Write-Verbose "Clearing default session for $serverName (matches provided session)" $script:DefaultUnraidSession = $null Write-Information "Disconnected from Unraid session: $serverName" -InformationAction Continue } else { Write-Verbose "Provided session does not match default session; default session unchanged" Write-Warning "Provided session is not the default session. No action taken." } } else { if ($script:DefaultUnraidSession) { $serverName = $script:DefaultUnraidSession.Server Write-Verbose "Clearing default session for $serverName" $script:DefaultUnraidSession = $null Write-Information "Disconnected from default Unraid session: $serverName" -InformationAction Continue } else { Write-Warning "No active default session to disconnect." } } } } |