From a2856ee50b431103af73981e017b5fa7bc18956d Mon Sep 17 00:00:00 2001 From: admwkiv839 Date: Thu, 16 Jun 2022 08:45:00 +0200 Subject: [PATCH] Also update the docs and Disconnect-From --- src/Connection/Connect-To.ps1 | 24 ++++++-- src/Connection/Disconnect-From.ps1 | 98 +++++++++++++++++------------- 2 files changed, 74 insertions(+), 48 deletions(-) diff --git a/src/Connection/Connect-To.ps1 b/src/Connection/Connect-To.ps1 index 5c203de..147fcf6 100644 --- a/src/Connection/Connect-To.ps1 +++ b/src/Connection/Connect-To.ps1 @@ -14,8 +14,16 @@ function Connect-To { same hostname. .PARAMETER Type - Specify the host type of the target. Currently implemented targets are: Possible connection values are: - CiscoUcs, FTP, NetAppFAS, VMware, CisServer, ExchangeHTTP, ExchangeHTTPS, SCP. + Specify the host type of the target. Currently implemented targets are: + - CiscoUcs + - CiscoUcsCentral + - CisServer + - ExchangeHTTP + - ExchangeHTTPS + - FTP + - NetAppFAS + - SCP + - VMware .PARAMETER Credentials Use this parameter to bypass the stored credentials. Without this parameter Connect-To tries to read the @@ -41,6 +49,9 @@ function Connect-To { .EXAMPLE Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs + .EXAMPLE + Connect-To -RemoteHost "ucscentral.myside.local" -Type 'CiscoUcsCentral' + .EXAMPLE Connect-To -RemoteHost "ftp.myside.local" -Type FTP @@ -82,13 +93,14 @@ function Connect-To { [Parameter(Mandatory = $true, ParameterSetName = "Private")] [ValidateSet( 'CiscoUcs', - 'FTP', - 'NetAppFAS', - 'VMware', + 'CiscoUcsCentral', 'CisServer', 'ExchangeHTTP', 'ExchangeHTTPS', - 'SCP' + 'FTP', + 'NetAppFAS', + 'SCP', + 'VMware' )] [string]$Type, diff --git a/src/Connection/Disconnect-From.ps1 b/src/Connection/Disconnect-From.ps1 index 57139b9..aeb60b8 100644 --- a/src/Connection/Disconnect-From.ps1 +++ b/src/Connection/Disconnect-From.ps1 @@ -14,8 +14,16 @@ function Disconnect-From { same hostname. .PARAMETER Type - Specify the host type of the target. Currently implemented targets are: CiscoUcs, FTP, NetAppFAS, VMware, - CisServer, ExchangeHTTP, ExchangeHTTPS, SCP. + Specify the host type of the target. Currently implemented targets are: + - CiscoUcs + - CiscoUcsCentral + - CisServer + - ExchangeHTTP + - ExchangeHTTPS + - FTP + - NetAppFAS + - SCP + - VMware .PARAMETER Force Force the disconnect, even if the disconnect would fail. @@ -29,6 +37,9 @@ function Disconnect-From { .EXAMPLE Disconnect-From -RemoteHost "ucs.myside.local" -Type CiscoUcs + .EXAMPLE + Disconnect-From -RemoteHost "ucscentral.myside.local" -Type 'CiscoUcsCentral' + .EXAMPLE Disconnect-From -RemoteHost "ftp.myside.local" -Type FTP @@ -67,13 +78,14 @@ function Disconnect-From { [Parameter(Mandatory = $true)] [ValidateSet( 'CiscoUcs', - 'FTP', - 'NetAppFAS', - 'VMware', + 'CiscoUcsCentral', 'CisServer', 'ExchangeHTTP', 'ExchangeHTTPS', - 'SCP' + 'FTP', + 'NetAppFAS', + 'SCP', + 'VMware' )] [string]$Type, @@ -81,43 +93,43 @@ function Disconnect-From { [switch]$Force ) + # Set defaults for the preference variables. + $InformationPreference = 'Continue' + $ErrorActionPreference = 'Stop' + $ProgressPreference = 'SilentlyContinue' + + switch -Regex ($Type) { "VMware" { try { if ($Force) { - Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop -Force:$true + Disconnect-VIServer -Server $RemoteHost -Confirm:$false -Force:$true } else { - Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop + Disconnect-VIServer -Server $RemoteHost -Confirm:$false } } 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 + $_.Exception.Message | Write-Warning + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } "CisServer" { try { if ($Force) { - Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop -Force:$true + Disconnect-CisServer -Server $RemoteHost -Confirm:$false -Force:$true } else { - Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop + Disconnect-CisServer -Server $RemoteHost -Confirm:$false } } 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 + $_.Exception.Message | Write-Warning + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } # Check for an existing WinSCP Session var @@ -147,11 +159,8 @@ 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 + $_.Exception.Message | Write-Warning + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } @@ -162,24 +171,33 @@ 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 + $_.Exception.Message | Write-Warning + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } + + 'CiscoUcsCentral' { + try { + Disconnect-UcsCentral -Ucs $RemoteHost + } + + catch { + # Write a error message to the log. + $_.Exception.Message | Write-Warning + Write-Error -Message ('Unable to disconnect from {0} using Type {1}.' -f $RemoteHost, $Type) + } + } + + "ExchangeHTTP*" { try { - Get-Variable -Name 'PSExchangeRemote' -Scope Global -ErrorAction Stop - Remove-PSSession -Session $Global:PSExchangeRemote -ErrorAction Stop + Get-Variable -Name 'PSExchangeRemote' -Scope Global + Remove-PSSession -Session $Global:PSExchangeRemote } catch { - $MessageParams = @{ - Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type - ErrorAction = "Stop" - } - Write-Error @MessageParams + # Write a error message to the log. + $_.Exception.Message | Write-Warning + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } "SCP" { @@ -196,11 +214,7 @@ function Disconnect-From { } default { # 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 + Write-Error -Message ("Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type) } } }