From 9ed86fd126a13a7578a2e07c384b64fab315abf9 Mon Sep 17 00:00:00 2001 From: pinguinfuss Date: Thu, 9 Mar 2023 20:18:57 +0100 Subject: [PATCH] Reordering --- src/Connection/Disconnect-From.ps1 | 230 +++++++++++++++-------------- 1 file changed, 118 insertions(+), 112 deletions(-) diff --git a/src/Connection/Disconnect-From.ps1 b/src/Connection/Disconnect-From.ps1 index ef8b157..94ad23b 100644 --- a/src/Connection/Disconnect-From.ps1 +++ b/src/Connection/Disconnect-From.ps1 @@ -10,7 +10,7 @@ function Disconnect-From { Specify the remote endpoint, whose session you would like to terminate. .PARAMETER Identifier - Defaults to "". Specify a string, which separates two CredentialStoreItems for the + Defaults to ''. Specify a string, which separates two CredentialStoreItems for the same hostname. .PARAMETER Type @@ -18,13 +18,13 @@ function Disconnect-From { - CiscoUcs - CiscoUcsCentral - - FTP - - NetAppFAS - - VMware - - CisServer - ExchangeHTTP - ExchangeHTTPS + - FTP + - NetAppFAS - SCP + - VMware + - VMwareCisServer .PARAMETER Force Force the disconnect, even if the disconnect would fail. @@ -36,28 +36,28 @@ function Disconnect-From { [None] .EXAMPLE - Disconnect-From -RemoteHost "ucs.myside.local" -Type CiscoUcs + Disconnect-From -RemoteHost 'ucs.myside.local' -Type CiscoUcs .EXAMPLE - Disconnect-From -RemoteHost "ftp.myside.local" -Type FTP + Disconnect-From -RemoteHost 'ftp.myside.local' -Type FTP .EXAMPLE - Disconnect-From -RemoteHost "fas.myside.local" -Type NetAppFAS + Disconnect-From -RemoteHost 'fas.myside.local' -Type NetAppFAS .EXAMPLE - Disconnect-From -RemoteHost "esx01.myside.local" -Type VMware + Disconnect-From -RemoteHost 'esx01.myside.local' -Type VMware .EXAMPLE - Disconnect-From -RemoteHost "esx01.myside.local" -Type VMware -Force:$True + Disconnect-From -RemoteHost 'esx01.myside.local' -Type VMware -Force:$True .EXAMPLE - Disconnect-From -RemoteHost "vcenter.myside.local" -Type CisServer + Disconnect-From -RemoteHost 'vcenter.myside.local' -Type CisServer .EXAMPLE - Disconnect-From -RemoteHost "exchange01.myside.local" -Type ExchangeHTTP + Disconnect-From -RemoteHost 'exchange01.myside.local' -Type ExchangeHTTP .EXAMPLE - Disconnect-From -RemoteHost "exchange01.myside.local" -Type ExchangeHTTPS + Disconnect-From -RemoteHost 'exchange01.myside.local' -Type ExchangeHTTPS #> [CmdletBinding()] @@ -74,13 +74,13 @@ function Disconnect-From { [ValidateSet( 'CiscoUcs', 'CiscoUcsCentral', - 'FTP', - 'NetAppFAS', - 'VMware', - 'CisServer', 'ExchangeHTTP', 'ExchangeHTTPS', - 'SCP' + 'FTP', + 'NetAppFAS', + 'SCP', + 'VMware', + 'VMwareCisServer' )] [string]$Type, @@ -92,7 +92,101 @@ function Disconnect-From { process { switch -Regex ($Type) { - "VMware" { + 'CiscoUcs' { + try { + Disconnect-Ucs -Ucs $RemoteHost + } + + catch { + # Write a error message to the log. + $MessageParams = @{ + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + 'CiscoUCSCentral' { + try { + $handle = Connect-UcsCentral -Name $RemoteHost -Credential $creds -NotDefault + $ExecutionContext.SessionState.PSVariable.Set('DefaultUcsCentral', $handle) + } + catch { + $MessageParams = @{ + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + 'ExchangeHTTP*' { + try { + Get-Variable -Name 'PSExchangeRemote' -Scope 'Global' -ErrorAction 'Stop' + Remove-PSSession -Session $Global:PSExchangeRemote -ErrorAction 'Stop' + } + catch { + $MessageParams = @{ + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + # Check for an existing WinSCP Session var + 'FTP' { + if ($Global:WinSCPSession.Opened) { + Remove-WinSCPSession -WinSCPSession $Global:WinSCPSession + } + else { + $MessageParams = @{ + Message = 'There is no open WinSCP Session' + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + # DataONTAP doesn't have a CmdLet `Disconnect-NcController`. + # So we go ahead and clear the CurrentNcController variable. + 'NetAppFAS' { + try { + $MessageParams = @{ + Message = ( + 'Setting {0} to `$null, which will disconnect NetAppFAS' -f $Global:CurrentNcController + ) + ErrorAction = 'Continue' + } + Write-Verbose @MessageParams + $Global:CurrentNcController = $null + } + + catch { + # Write a error message to the log. + $MessageParams = @{ + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + 'SCP' { + if ($Global:WinSCPSession.Opened) { + Remove-WinSCPSession -WinSCPSession $Global:WinSCPSession + } + else { + $MessageParams = @{ + Message = 'There is no open WinSCP Session' + ErrorAction = 'Stop' + } + Write-Error @MessageParams + } + } + + 'VMware' { try { if ($Force) { Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' -Force:$true @@ -105,13 +199,14 @@ function Disconnect-From { catch { # Write a error message to the log. $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type ErrorAction = 'Stop' } Write-Error @MessageParams } } - "CisServer" { + + 'VMwareCisServer' { try { if ($Force) { Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' -Force:$true @@ -124,106 +219,17 @@ function Disconnect-From { catch { # Write a error message to the log. $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - } - # Check for an existing WinSCP Session var - "FTP" { - if ($Global:WinSCPSession.Opened) { - Remove-WinSCPSession -WinSCPSession $Global:WinSCPSession - } - else { - $MessageParams = @{ - Message = 'There is no open WinSCP Session' - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - } - # DataONTAP doesn't have a CmdLet `Disconnect-NcController`. - # So we go ahead and clear the CurrentNcController variable. - "NetAppFAS" { - try { - $MessageParams = @{ - Message = ( - "Setting {0} to `$null, which will disconnect NetAppFAS" -f $Global:CurrentNcController - ) - ErrorAction = 'Continue' - } - Write-Verbose @MessageParams - $Global:CurrentNcController = $null - } - - catch { - # Write a error message to the log. - $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - - } - "CiscoUcs" { - try { - Disconnect-Ucs -Ucs $RemoteHost - } - - catch { - # Write a error message to the log. - $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - } - "CiscoUCSCentral" { - try { - $handle = Connect-UcsCentral -Name $RemoteHost -Credential $creds -NotDefault - $ExecutionContext.SessionState.PSVariable.Set('DefaultUcsCentral', $handle) - } - catch { - $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type ErrorAction = 'Stop' } Write-Error @MessageParams } } - "ExchangeHTTP*" { - try { - Get-Variable -Name 'PSExchangeRemote' -Scope 'Global' -ErrorAction 'Stop' - Remove-PSSession -Session $Global:PSExchangeRemote -ErrorAction 'Stop' - } - catch { - $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - } - "SCP" { - if ($Global:WinSCPSession.Opened) { - Remove-WinSCPSession -WinSCPSession $Global:WinSCPSession - } - else { - $MessageParams = @{ - Message = 'There is no open WinSCP Session' - ErrorAction = 'Stop' - } - Write-Error @MessageParams - } - } default { # Write a error message to the log. $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type + Message = 'Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type ErrorAction = 'Stop' } Write-Error @MessageParams